Hello Akira, 2011/3/9 Akira Fujita <a-fujita@xxxxxxxxxxxxx>: > commit cc56f7de7f00d188c7c4da1e9861581853b9e92f made > sendfile(2) can work with any output file. > Therefore the out_fd of sendfile(2) can refer to any file, > but current manual (man-pages-3.32) has not been changed so far. Thank you for this report! Some notes below. > Signed-off-by: Akira Fujita <a-fujita@xxxxxxxxxxxxx> > --- > sendfile.2 | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > --- man-pages-3.32-a/man2/sendfile.2 2010-12-03 16:01:59.000000000 +0900 > +++ man-pages-3.32-b/man2/sendfile.2 2011-03-09 10:34:53.000000000 +0900 > @@ -87,15 +87,17 @@ and the file offset will be updated by t > .I count > is the number of bytes to copy between the file descriptors. > > -Presently (Linux 2.6.9): > -.IR in_fd , > +.IR in_fd > must correspond to a file which supports > .BR mmap (2)-like > operations > -(i.e., it cannot be a socket); You removed that piece, but I believe nothing changed for 'in_fd', so I kept that piece. > -and > -.I out_fd > -must refer to a socket. > +(i.e., it cannot be a socket). > + > +.IR out_fd > +was required to be a socket, but since Linux 2.6.33 it can be > +any file. If it is a regular file, then > +.BR sendfile() > +changes its offset appropriately. > > Applications may wish to fall back to > .BR read (2)/ write (2) > @@ -165,7 +167,7 @@ to minimize the number of packets and to > > In Linux 2.4 and earlier, > .I out_fd > -could refer to a regular file, and > +could also refer to a regular file, and > .BR sendfile () > changed the current offset of that file. For 3.33 I applied a slightly modified version of you patch; see below. Cheers, Michael --- a/man2/sendfile.2 +++ b/man2/sendfile.2 @@ -92,10 +92,14 @@ The argument must correspond to a file which supports .BR mmap (2)-like operations -(i.e., it cannot be a socket); -and +(i.e., it cannot be a socket). +In Linux kernels before 2.6.33, .I out_fd must refer to a socket. +Since Linux 2.6.33 it can be any file. +If it is a regular file, then +.BR sendfile() +changes the file offset offset appropriately. Applications may wish to fall back to .BR read (2)/ write (2) @@ -165,7 +169,7 @@ to minimize the number of packets and to tune performance. In Linux 2.4 and earlier, .I out_fd -could refer to a regular file, and +could also refer to a regular file, and .BR sendfile () changed the current offset of that file. -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Author of "The Linux Programming Interface"; http://man7.org/tlpi/ -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html