Provided by: manpages-pt-dev_20040726-2_all bug

NOME

       sendfile - transfere dados entre descritores de arquivo

SINOPSE

       #include <sys/sendfile.h>

       ssize_t  sendfile(int  da_saida,  int  da_entrada, off_t *deslocamento,
       size_t quantidade)

DESCRIÇÃO

       Esta chamada copia dados de um descritor de arquivo para outro.  Um  ou
       ambos  destes  descritores  de  arquivo  podem  ser um soquete de rede.
       da_entrada deve ser um descritor  de  arquivo  aberto  para  leitura  e
       da_saida  deve  ser  um  descritor  de  arquivo  aberto  para  escrita.
       deslocamento é um ponteiro para uma  variável  contendo  a  posição  do
       ponteiro  do arquivo de entrada a partir de onde sendfile(2) iniciará a
       leitura de  dados.  Quando  sendfile  retornar,  esta  variável  estará
       atribuída  com  o  deslocamento  do  byte seguinte ao último byte lido.
       quantidade é o número de bytes a ser transferido entre  os  descritores
       de arquivos.

NOTAS

       Sendfile  não modifica o ponteiro do arquivo da_entrada, mas modifica o
       de da_saida.

       Se você pretende usar sendfile para enviar  arquivos  para  um  soquete
       TCP, mas precisa enviar alguns cabeçalhos antes do conteúdo do arquivo,
       veja a opção TCP_CORK em tcp(7) para minimizar o número  de  pacotes  e
       para ajustar a performance.

VALORES RETORNADOS

       Se  a  transferência  foi  bem  sucedida, o número de bytes escritos em
       da_saida é retornado.  Caso  contrário,  -1  é  retornado,  e  errno  é
       ajustado adequadamente.

ERROS

       EBADF  O arquivo de entrada não foi aberto para leitura ou o arquivo de
              saída não foi aberto para escrita.

       EINVAL Descritor inválido ou travado.

       ENOMEM Memória insuficiente para ler a partir de da_entrada.

       EIO    Erro não especificado durante a leitura de da_entrada.

VERSÕES

       sendfile é uma nova característica no Linux 2.2.

       Outros Unixes freqüentemente implementam  sendfile  com  diferenças  de
       semântica  e  protótipo.   sendfile  não  deve  ser  usada  em programa
       portáveis.

VEJA TAMBÉM

       socket(2), open(2)

TRADUZIDO PELA EQUIPE DO LDP-BR EM 29/08/2000

       André  L.  Fassone  Canova  <lonelywolf@blv.com.br>  (tradução)  Marcus
       Vinicius S. Brito <pazu@visaotec.com.br> (revisão)