In article <20100506150045.ga...@marx.bitnet>,
Jukka Ruohonen  <jruoho...@iki.fi> 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

Reply via email to