This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: fsync bug
- From: Christopher Faylor <cgf-use-the-mailinglist-please at cygwin dot com>
- To: cygwin at cygwin dot com
- Date: Wed, 21 Sep 2011 16:54:18 -0400
- Subject: Re: fsync bug
- References: <4E7A4C69.5080807@redhat.com>
- Reply-to: cygwin at cygwin dot com
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