Provided by: manpages-pt-dev_20040726-4_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)