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)