[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#119974: Bug confirmed



On Mon, Jan 13, 2003 at 08:02:14AM -0500, H. S. Teoh wrote:
> So you're saying that even if you ask for POSIX.1b, you still don't get
> fsync()?

Yes.  Try this:

$ cat test.c
#include <unistd.h>
void foo (void) { fsync(0); }
$ gcc -Wall -D_POSIX_C_SOURCE=199309L -c test.c
test.c: In function `foo':
test.c:2: warning: implicit declaration of function `fsync'

> According to my online research, fsync is NOT part of POSIX.1, but it IS a
> part of POSIX.1b. There was an earlier contention over fsync's semantics
> that precluded it from being in POSIX.1; but apparently the POSIX people
> have decided to put it in 1b. Now, whether or not the glibc headers
> correctly reflect this is something the glibc maintainers should check. 

Well, if it's part of POSIX then the function prototype is not correctly
guarded by only the BSD and X/Open flags.  It does not work for those
who ask for POSIX.1b *but not more*.

> Also, if the glibc docs are confusing, then it should be fixed so that
> fsync is clearly labelled as POSIX.1b, not just POSIX (which, IIRC, means
> POSIX.1 only---or at least, that's what the current glibc headers will
> give you when you ask for POSIX.)

Please, since you know the details and can point to facts (surely better
than me), could you file the bug for glibc-doc?  



Reply to: