Provided by: manpages-es_1.55-10_all bug

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)