1*43fdea7dSMarcus Overhagen #include <sys/uio.h>
2*43fdea7dSMarcus Overhagen #include <stdio.h>
3*43fdea7dSMarcus Overhagen #include <unistd.h>
4*43fdea7dSMarcus Overhagen #include <errno.h>
5*43fdea7dSMarcus Overhagen #include <string.h>
6*43fdea7dSMarcus Overhagen #include <fcntl.h>
7*43fdea7dSMarcus Overhagen
8*43fdea7dSMarcus Overhagen int
main()9*43fdea7dSMarcus Overhagen main()
10*43fdea7dSMarcus Overhagen {
11*43fdea7dSMarcus Overhagen int fd = open("testfile", O_CREAT | O_RDWR, 0666);
12*43fdea7dSMarcus Overhagen
13*43fdea7dSMarcus Overhagen if (fd < 0) {
14*43fdea7dSMarcus Overhagen printf("file open error %s\n", strerror(errno));
15*43fdea7dSMarcus Overhagen return 1;
16*43fdea7dSMarcus Overhagen }
17*43fdea7dSMarcus Overhagen
18*43fdea7dSMarcus Overhagen int dummy;
19*43fdea7dSMarcus Overhagen int ret;
20*43fdea7dSMarcus Overhagen iovec vec1 = { &dummy, sizeof(dummy) };
21*43fdea7dSMarcus Overhagen ret = writev(fd, &vec1, 0x80000001);
22*43fdea7dSMarcus Overhagen
23*43fdea7dSMarcus Overhagen if (ret < 0) {
24*43fdea7dSMarcus Overhagen printf("vec 1 write error %s\n", strerror(errno));
25*43fdea7dSMarcus Overhagen }
26*43fdea7dSMarcus Overhagen
27*43fdea7dSMarcus Overhagen iovec vec2 = { (void *)0x80100000, 0x1000 };
28*43fdea7dSMarcus Overhagen ret = writev(fd, &vec2, 1);
29*43fdea7dSMarcus Overhagen
30*43fdea7dSMarcus Overhagen if (ret < 0) {
31*43fdea7dSMarcus Overhagen printf("vec 2 write error %s\n", strerror(errno));
32*43fdea7dSMarcus Overhagen }
33*43fdea7dSMarcus Overhagen
34*43fdea7dSMarcus Overhagen iovec vec3 = { 0, 1 };
35*43fdea7dSMarcus Overhagen ret = writev(fd, &vec3, 0xfff);
36*43fdea7dSMarcus Overhagen
37*43fdea7dSMarcus Overhagen if (ret < 0) {
38*43fdea7dSMarcus Overhagen printf("vec 3 write error %s\n", strerror(errno));
39*43fdea7dSMarcus Overhagen }
40*43fdea7dSMarcus Overhagen
41*43fdea7dSMarcus Overhagen close(fd);
42*43fdea7dSMarcus Overhagen
43*43fdea7dSMarcus Overhagen return 0;
44*43fdea7dSMarcus Overhagen }
45