fflush() on readonly files

David Schultz das at FreeBSD.ORG
Thu Jun 10 02:14:04 GMT 2004


On Wed, Jun 09, 2004, Radim Kolar wrote:
> I have submitted pr http://www.freebsd.org/cgi/query-pr.cgi?pr=65402 with patch
> which makes fflush() on read only descriptors do not return error code.
> 
> Reasons for this patch:
> 1 - Do not breaks ISO C standard
> 2 - Makes FreeBSD undefined behavior compatible with other operation systems
> 3 - Correct some programs depending on this

Are there any such programs?

> 4 - Makes fflush() and fsync() behavior identical - avoids programmer's confusion.
> 5 - If there are no data to flush() then flush operation (dummy) succeeds, not failed.
> 
> Against this patch:
>   Programs which rely upon fflush() not returning an error
>   when passed a file which is opened read-only are broken,
>   and should be fixed.
> 
>   Colin Percival

I don't see how that's an argument against it.  Programs that call
fflush() on a read-only stream are broken either way.

> Are there any other reasons for non commiting it? I think that in this case
> pro > cons.

Well, I think all those other operating systems (Solaris, HP-UX,
Linux, etc.) are wrong in this case, but it would probably behoove
us to conform to the /de facto/ standard.


More information about the freebsd-arch mailing list