xref: /haiku/src/tests/misc/writev-test.cpp (revision 43fdea7d5254ec48fc3dc31dae33d042ece7f7e7)
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