dup

DUP(2)                    Manual do Programador Linux                   DUP(2)



NOME
       dup, dup2 - duplica um descritor de arquivos

SINOPSE
       #include <unistd.h>

       int dup(int oldfd);
       int dup2(int oldfd, int newfd);

DESCRIÃÃO
       dup e dup2 criam uma cópia do descritor de arquivos oldfd.

       Depois do retorno bem sucedido de dup ou dup2, o velho e o novo
       descritores podem ser usados sem distinção. Eles compartilham
       travamento, posicionamento do arquivo, ponteiros e sinalizadores; por
       exemplo, se a posição do arquivo é modificada usando-se lseek em um
       dos descritores, a posição é, também, alterada para o outro.

       De qualquer forma, Os dois descritores não dividem o sinalizador
       close-on-exec.

       dup usa o mais baixo número não usado de descritor para o novo
       descritor.

       dup2 makes newfd ser a cópia de oldfd, closing newfd primeiro se
       necesário.

VALORES RETORNADOS
       dup e dup2 retorna o novo descritor, ou -1 se um erro occurrido (neste
       caso, errno é selecionado adequadamente).

ERROS
       EBADF  oldfd não é um descritor de arquivo aberto, ou newfd está
              fora do intervalo permitido para descritores de arquivos.

       EMFILE O processo tem um número máximo de descritores de arquivos
              abertos e tenta abrir um novo.

ADVERTÃNCIA
       O erro retornado por dup2 é diferente que aquele retornado por
       fcntl(..., F_DUPFD, ...)  quando newfd está fora do intervalo. Em
       muitos sistemas dup2 também retorna às vezes EINVAL como F_DUPFD.

DE ACORDO COM
       SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 documenta condições de erros
       adicionais EINTR e ENOLINK. POSIX.1 adiciona EINTR.

VEJA TAMBÃM
       fcntl(2), open(2), close(2)



Linux 1.1.46                      21/08/1994                            DUP(2)