.\" This man page is Copyright (C) 1998 Pawel Krawczyk. .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" $Id: sendfile.2,v 1.5 1999/05/18 11:54:11 freitag Exp $ .\" .\" Translated on Sun Jun 27 1999 by Juan Piernas .\" Translation revised Sat Jan 29 2000 by Juan Piernas .\" .TH SENDFILE 2 "1 diciembre 1998" "Página man de Linux" "Manual del Programador de Linux" .SH NOMBRE sendfile \- transfiere datos entre descriptores de fichero .SH SINOPSIS .B #include .sp .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" offset ", size_t" " count" ) .\" The below is too ugly. Comments about glibc versions belong .\" in the notes, not in the header. .\" Moreover, all system calls should be defined in . .\" .\" .B #include .\" .br .\" .B #if (__GLIBC__==2 && __GLIBC_MINOR__>=1) || __GLIBC__>2 .\" .br .\" .B #include .\" .br .\" #else .\" .br .\" .B #include .\" .br .\" .B /* No system prototype before glibc 2.1. */ .\" .br .\" .BI "ssize_t sendfile(int" " out_fd" ", int" " in_fd" ", off_t *" offset ", size_t" " count" ) .\" .br .\" .B #endif .\" .SH DESCRIPCIÓN Esta llamada copia datos entre un descriptor de fichero y otro. Cualquiera de los dos descriptores de fichero o los dos pueden referirse a un conector (socket). .I in_fd debe ser un descriptor de fichero abierto para lectura y .I out_fd debe ser un descriptor abierto para escritura. .I offset es un puntero a una variable que contiene la posición del puntero del fichero de entrada desde la que .BR sendfile (2) empezará a leer datos. Cuando .B sendfile regrese, a esta variable se le asignará la posición del byte siguiente al último byte que se ha leído. .I count es la cantidad de bytes a copiar entre los descriptores de fichero. .SH NOTAS Sendfile no modifica el puntero de fichero actual de .IR in_fd , pero sí lo hace para .IR out_fd . Si planea usar sendfile para enviar ficheros a un conector TCP, pero necesita enviar algunos datos de cabecera delante de los contenidos del fichero, por favor vea la opción .B TCP_CORK en .BR tcp (7) para minimizar el número de paquetes y ajustar el rendimiento. .SH "VALOR DEVUELTO" Si la transferencia ha tenido éxito, se devuelve el número de bytes escritos en .IR out_fd . En caso de error, se devuelve \-1 y se asigna a .I errno un valor apropiado. .SH ERRORES .TP .B EBADF El fichero de entrada no ha sido abierto para lectura o el fichero de salida no ha sido abierto para escritura. .TP .B EINVAL Descriptor inválido o bloqueado. .\" These two are from do_generic_file_read() in filemap.c .TP .B ENOMEM No hay memoria suficiente para leer de .IR in_fd . .TP .B EIO Se ha producido un error indeterminado al leer de .IR in_fd . .SH VERSIONES .B sendfile es una nueva característica de la versión 2.2 de Linux. Otros Unix normalmente implementan .B sendfile con otras semánticas y prototipos. No debería usarse en programas transportables. .SH VÉASE TAMBIÉN .BR socket (2), .BR open (2)