On Thu, 06 May 2010, Christos Zoulas wrote:
> >    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()?

It seems to me that funopen() creates a stream that is not associated
with a file descriptor.  I assume that's what POSIX meant by "... not
associated with a file".  So, I think that EBADF would be a reasonable
response.

Returning -1 without setting errno seems very wrong.  Seting errno
to some value that we think is more appropriate than EBADF would
probably be OK.

--apb (Alan Barrett)

Reply via email to