[TUHS] fstat(2) on pipes?

Dave Horsfall dave at horsfall.org
Mon Aug 15 10:41:02 AEST 2016


On Mon, 15 Aug 2016, Warren Toomey wrote:

> All, sorry this is slightly off-topic. I'm trying to find out what 
> fstat(2) returns when the file descriptor is a pipe. The POSIX/Open 
> Group documentation doesn't really specify what should be returned. Does 
> anybody have any pointers?

I always thought it was undefined, but my Mac says:

BUGS
     Applying fstat to a socket (and thus to a pipe) returns a zero'd buffer,
     except for the blocksize field, and a unique device and inode number.

And my FreeBSD box is the same; I haven't checked my Penguins.

> P.S. Why? xv6 has fstat() but returns an error if the file descriptor 
> isn't associated with an i-node. I'm trying to work out if/how to fix 
> it.

Probably not much use to you, but back in Ed6 I did modify it to return
the amount of data in the pipe.

-- 
Dave Horsfall DTM (VK2KFU)  "Those who don't understand security will suffer."


More information about the TUHS mailing list