Source-Changes-D archive

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

Re: CVS commit: src/lib/libc/stdio



In article <20100506150045.GA749%marx.bitnet@localhost>,
Jukka Ruohonen  <jruohonen%iki.fi@localhost> wrote:
>On Thu, May 06, 2010 at 02:48:32PM +0200, Joerg Sonnenberger wrote:
>> On Thu, May 06, 2010 at 08:51:29AM +0000, David Holland wrote:
>> > On Thu, May 06, 2010 at 08:14:08AM +0000, Jukka Ruohonen wrote:
>> >  > Correct the discussion about return values: fileno() may fail and
>return -1.
>> >  > Note that in such cases the NetBSD implementation does not set errno to
>> >  > EBADF, hence diverging from the standard in this small detail.
>> > 
>> > How is that not just a bug?
>> 
>> -1 is a valid answer for not file-backed FILEs. I don't think it is an
>> error.
>
>RETURN VALUE
>
>    Upon successful completion, fileno() shall return the integer value of
>the file descriptor associated with stream. Otherwise, the value -1 shall be
>returned and errno set to indicate the error.
>
>ERRORS
>
>    The fileno() function may fail if:
>
>    [EBADF]
>        The stream argument is not a valid stream, or the stream is not
>       associated with a file.
>
>Isn't the above EBADF exactly what you are after?

Our stdio supports funopen() which has FILE *'s where fileno() == -1, but
they work just fine... This should be documented. Perhaps set errno if
it is indeed a bad file descriptor, and don't set it if it is a side-effect
of funopen()?

christos



Home | Main Index | Thread Index | Old Index