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.