Documentation

Moves data between two file descriptors without copying between kernel
address space and user address space. It transfers up to len bytes of
data from the file descriptor fd_in to the file descriptor fd_out,
where one of the descriptors must refer to a pipe.

Attempt to move pages instead of copying. This is only a hint to the
kernel: pages may stil be copied (in kernel address space) if the kernel
cannot move the pages from the pipe, or if the pipe buffers don't refer to
full pages.

Do not block on I/O. This makes the c_splice pipe operations
nonblocking, but c_splice may nevertheless block because the file
descriptors that are c_spliced to/from may block (unless they have the
O_NONBLOCK flag set).