vmsplice(2) System Calls Manual vmsplice(2) vmsplice - Standard C library (libc, -lc) #define _GNU_SOURCE /* . feature_test_macros(7) */ #include ssize_t vmsplice(int fd, const struct iovec *iov, size_t nr_segs, unsigned int flags); fd , vmsplice() nr_segs , iov, . fd , vmsplice() nr_segs , iov, . fd . iov iovec, iovec(3type). flags , (OR) : SPLICE_F_MOVE vmsplice(); . splice(2). SPLICE_F_NONBLOCK -; splice(2). SPLICE_F_MORE vmsplice(), ; . splice(2). SPLICE_F_GIFT . , , , . , splice(2) SPLICE_F_MOVE ; , splice(2) SPLICE_F_MOVE . , : . vmsplice() , . vmsplice() -1, errno . EAGAIN flags SPLICE_F_NONBLOCK, . EBADF fd . EINVAL nr_segs IOV_MAX; , SPLICE_F_GIFT, . ENOMEM . Linux. Linux 2.6.17, glibc 2.5. vmsplice() / . IOV_MAX, . 1024. vmsplice() . , , . , vmsplice() . splice(2), tee(2), pipe(7) () Azamat Hackimov , Dmitriy Ovchinnikov , Dmitry Bolkhovskikh , Katrin Kutepova , Yuri Kozlov , Kirill Rekhov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () <>. Linux man-pages 6.12 23 2024 . vmsplice(2)