vmsplice(2) System Calls Manual vmsplice(2) vmsplice - / (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 (bit mask) 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 SPLICE_F_NONBLOCK flags . EBADF fd . EINVAL nr_segs IOV_MAX SPLICE_F_GIFT. ENOMEM . . 2.6.17 glibc 2.5. vmsplice() / . IOV_MAX . 1024. vmsplice() . . vmsplice() . splice(2), tee(2), pipe(7) 3 . . : . 6.18 8 2026 vmsplice(2)