fsync bug

Christopher Faylor cgf-use-the-mailinglist-please@cygwin.com
Thu Sep 22 14:49:00 GMT 2011


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



More information about the Cygwin mailing list