splice
splice is a Linux system call that transfers data between file descriptors, at least one of which is a pipe, without a round trip through userspace.
Pipe buffers can hold references to pages rather than independent byte copies. A retained page reference protects lifetime, not immutability. SPLICE_F_MOVE is documented as a no-op, not an exclusive-ownership guarantee. [1]
The kernel also provides a copying read path, so use of splice alone does not establish that no payload copy occurred. [2]
Relations
- related
- sendfile, page-cache, copy-file-range
Citations
- Linux man-pages 6.19: splice(2), pipe buffers and flags
- Linux 6.12 documentation: splice and pipes, copy_splice_read
Further reading
Published by Hesela team · Updated
Report a correction · Editorial standards · Reuse guidance
Cite this page
Hesela team. splice. Hesela. 2026-10-18. https://hesela.dev/terms/splice/