1 .TH vmsplice 2 2006-04-28 "Linux 2.6.17" "Linux Programmer's Manual"
3 vmsplice \- splice user pages into a pipe
5 .B #include <sys/uio.h>
7 .B long vmsplice(int fd, const struct iovec *iov, unsigned long nr_segs, unsigned ing flags);
16 described user memory into a pipe. The
17 .I fd must refer to a pipe.
28 void *iov_base; /* Starting address */
29 size_t iov_len; /* Number of bytes */
35 argument is a series of modifier flags. Only
41 , the but the scope is shared with
53 More data will be coming in a subsequent splice.
56 The user pages are a gift to the kernel. The application may not reuse this
57 memory ever, or page cache and on disk data may differ. Data must also be
58 properly page aligned, both in memory and length.
61 Upon successful completion,
63 shall return the number of bytes spliced to the pipe. Otherwise, it shall
64 return a value of -1 and
66 shall be set to indicate an error.
72 either not valid, or doesn't refer to a pipe.
76 not valid, memory not aligned if
85 follows the other vectorized read/write type functions when it comes to
86 limitations on number of segments being passed in. This limit is
90 At the time of this writing, that limit is 1024.
95 system call first appeared in Linux-2.6.17.
102 Jens Axboe <axboe@kernel.dk>