Similar to the UNIX pipe() call, but on modern systems like Linux
uses the pipe2() system call, which atomically creates a pipe with
the configured flags. The only supported flag currently is
FD_CLOEXEC. If for example you want to configure O_NONBLOCK, that
must still be done separately with fcntl().
This function does not take O_CLOEXEC, it takes FD_CLOEXEC as if
for fcntl(); these are different on Linux/glibc.
Similar to the UNIX pipe() call, but on modern systems like Linux uses the pipe2() system call, which atomically creates a pipe with the configured flags. The only supported flag currently is FD_CLOEXEC. If for example you want to configure O_NONBLOCK, that must still be done separately with fcntl().
This function does not take O_CLOEXEC, it takes FD_CLOEXEC as if for fcntl(); these are different on Linux/glibc.