splice · shipping

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

  1. Linux man-pages 6.19: splice(2), pipe buffers and flags (accessed 2026-10-17)
  2. Linux 6.12 documentation: splice and pipes, copy_splice_read (accessed 2026-10-17)

Further reading

  1. Hesela: Zero-copy transfers do not freeze source bytes (accessed 2026-10-18)

JSON: /data/terms/splice.json

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/