Sys::Sendfile - Zero-copy data transfer
version 0.17
use Sys::Sendfile; sendfile $sink, $source, $count;
Sys::Sendfile provides access to your operating system's sendfile facility. It allows you to efficiently transfer data from one filehandle to another. Typically the source is a file on disk and the sink is a socket, and some operating systems may not even support other usage.
sendfile
This function sends up to $count bytes starting from $offset from $in to $out. If $count isn't given, it will try send all remaining bytes in $in, but on some operating systems sending only part of the bytes is a possible result. If $offset isn't given, the function will get current offset of $in (by calling lseek) and pass this information to underlying sendfile syscall. $in and $out can be a bareword, constant, scalar expression, typeglob, or a reference to a typeglob. It returns the number of bytes actually sent. On error, $! is set appropriately and it returns undef. This function is exported by default.
$count
$offset
$in
$out
$!
Not all operating systems support sendfile(). Currently Linux, FreeBSD, Solaris, Mac OS X (version 10.5 and up) and Windows are supported.
sendfile(2) - Your manpage on sendfile
IO::Sendfile - A sendfile implementation for Linux
Sys::Syscall - Another sendfile implementation for Linux
Sys::Sendfile::FreeBSD - A module implementing the FreeBSD variant of sendfile
Leon Timmermans <leont@cpan.org>
Kazuho Oku <kazuhooku@gmail.com> wrote the Mac OS X code.
<kazuhooku@gmail.com>
Yasuhiro Matsumoto <mattn.jp@gmail.com> wrote the Win32 code.
<mattn.jp@gmail.com>
This software is copyright (c) 2008 by Leon Timmermans.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Sys::Sendfile, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sys::Sendfile
CPAN shell
perl -MCPAN -e shell install Sys::Sendfile
For more information on module installation, please visit the detailed CPAN module installation guide.