On Wed, Sep 21, 2011 at 02:43:21PM -0600, Eric Blake wrote: >fsync() is required to work on read-only fds (in theory, you can sync >the atime metadata, which is a write operation triggered by a read-only >fd). But cygwin rejects this program, which works on Linux: > >$ cat foo.c >#include <errno.h> >#include <unistd.h> >#include <stdio.h> >#include <stdlib.h> >#include <assert.h> >#include <fcntl.h> >int main (void) >{ > int fd = open("file", O_CREAT|O_EXCL|O_WRONLY, 0600); > if (fd < 0) > return 1; > if (close(fd)) > return 2; > fd = open("file", O_RDONLY); > if (fd < 0) > return 3; > if (fsync(fd)) > return 4; > if (unlink("file")) > return 5; > puts("success"); > return 0; >} >$ rm -f file && ./foo; echo $? >4
http://msdn.microsoft.com/en-us/library/aa364439%28VS.85%29.aspx -- 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