F_SETPIPE_SZ
is Linux specific. You need to add:
#define _GNU_SOURCE
before including fcntl.h
. This is documented in the Conforming to section in the man page.
Note however that the default size should be enough for most uses of pipes for IPC with concurrent reads and writes, as pipe size is relevant only to reduce context switching. If you need a large pipe because you're storing data for long periods (e.g., because the reader is not active), you should consider rethinking your solution using temporary files, as very large pipes will waste kernel memory.