Bug 29972

Summary: Possibly bad EBADF error description in fsync(2)
Product: Documentation Reporter: Ricardo (jimenezrick)
Component: man-pagesAssignee: documentation_man-pages (documentation_man-pages)
Status: RESOLVED CODE_FIX    
Severity: normal CC: alan, jnerin
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: N/A Subsystem:
Regression: No Bisected commit-id:

Description Ricardo 2011-02-26 23:49:26 UTC
The man-page of fsync(2) has the next error description:
    EBADF  fd is not a valid file descriptor open for writing.

This man-page says nothing about if fsync(2) works correctly on a file descriptor open with O_RDONLY, but it seems to work without any problem. So that description induce to think that O_WRONLY or O_RDWR must be used.

The Open Group Base Specifications says nothing about in what mode the file must be open. And the EBADF error description also says nothing about not being open in writing mode (http://pubs.opengroup.org/onlinepubs/009695399/functions/fsync.html).


In conclusion, as far as I know, the next code snippet is correct and seems to work correctly in my machine with regular files and directories:
    fd = open(path, O_RDONLY);
    fsync(fd);

So the EBADF error description in man pages from fsync(2) is confusing, maybe it should be something like:
    EBADF  fd is not a valid file descriptor.


I'm using Ubuntu 10.10 with Linux man-pages 3.24.
Comment 1 Jorge NerĂ­n 2013-09-10 16:55:12 UTC
man-pages 3.51 fsync(2):

       EBADF  fd is not a valid open file descriptor.

I think this bug should be closed.