Provided by:
manpages-es_1.55-10_all 
NOMBRE
sendfile - transfiere datos entre descriptores de fichero
SINOPSIS
ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
DESCRIPCI'ON
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 (vea mas abajo). in_fd debe ser un descriptor
de fichero abierto para lectura y out_fd debe ser un descriptor abierto
para escritura. offset es un puntero a una variable que contiene la
posicion del puntero del fichero de entrada desde la que sendfile()
empezara a leer datos. Cuando sendfile() regrese, a esta variable se le
asignara la posicion del byte siguiente al ultimo byte que se ha leido.
count es la cantidad de bytes a copiar entre los descriptores de
fichero.
Puesto que esta copia se lleva a cabo dentro del nucleo, sendfile() no
necesita emplear tiempo en transferir datos a y desde el espacio de
usuario.
OBSERVACIONES
Sendfile no modifica el puntero de fichero actual de in_fd, pero si lo
hace para 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 opcion TCP_CORK en tcp(7) para minimizar el
numero de paquetes y ajustar el rendimiento.
Actualmente, el descriptor desde el que se lee no puede corresponder a
un conector, debe corresponder con un fichero que soporte operaciones
del tipo mmap().
VALOR DEVUELTO
Si la transferencia ha tenido exito, se devuelve el numero de bytes
escritos en out_fd. En caso de error, se devuelve -1 y se asigna a
errno un valor apropiado.
ERRORES
EBADF El fichero de entrada no ha sido abierto para lectura o el
fichero de salida no ha sido abierto para escritura.
EINVAL Descriptor invalido o bloqueado.
ENOMEM No hay memoria suficiente para leer de in_fd.
EIO Se ha producido un error indeterminado al leer de in_fd.
VERSIONES
sendfile es una nueva caracteristica de la version 2.2 de Linux. El
fichero de cabecera <sys/sendfile.h> esta presente desde glibc 2.1.
Otros Unix normalmente implementan sendfile con otras semanticas y
prototipos. No deberia usarse en programas transportables.
V'EASE TAMBI'EN
socket(2), open(2)
Pagina man de Linux 1 diciembre 1998 SENDFILE(2)