splice() is a Linux-specific system call that moves data between a file descriptor and a pipe without a round trip to user space.
The related system call vmsplice() moves or copies data between a pipe and user space.
Ideally, splice and vmsplice work by remapping pages and do not actually copy any data, which may improve I/O performance.
[1] The Linux splice implementation borrows some ideas from an original proposal by Larry McVoy in 1998.
[2] The splice system calls first appeared in Linux kernel version 2.6.17[1] and were written by Jens Axboe.