The pathconf(_PC_PIPE_BUF) gets the pipe buffer size on Linux using
F_GETPIPE_SZ on the file, or falls back to returning the default
PIPE_BUF. The fallback is incorrect since the default pipe buffer
size for Linux is not PIPE_BUF. Linux pipe buffer size is
configurable using F_SETPIPE_SZ and is initially set to
PIPE_DEF_BUFFERS * PAGE_SIZE, where PIPE_DEF_BUFFERS is 16. The
fallback should return this value. Patch below does that and also
includes a test case to verify that pathconf on a fifo and a directory
are the same.