writev() does not accept count 0 but it should $ cat test.c #include <stdio.h> #include <errno.h> #include <stdlib.h> #include <string.h> #include <sys/uio.h>
int main() { struct iovec vec; memset(&vec, 0, sizeof(vec)); if (writev(1, &vec, 0) < 0) perror("writev"); return 0; } Linux: $ gcc -Wall test.c $ ./a.out Cygwin: $ gcc -Wall test.c $ ./a.exe writev: Invalid argument This behavior is buggy per: EINVAL ... the vector count count is less than zero or greater than the permitted maximum ... -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple