Voltar à lista
Linux x86_64Arquivos & E/S#33Depreciada

dup2

Duplica um descritor de arquivo para um número específico, fechando-o antes se já estiver em uso.

Descrição

Usada classicamente para redirecionar stdin/stdout/stderr (ex.: implementação de pipes de shell) para um descritor específico.

Header: unistd.hman 2

Depreciada

Prefira `dup3` quando precisar de O_CLOEXEC atômico no novo descritor.

Assinatura

int dup2(int oldfd, int newfd);

Parâmetros

ParâmetroTipoDescrição
oldfdintDescritor a duplicar.
newfdintNúmero de descritor de destino.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1oldfdint
rsiargumento 2newfdint

Valor de retorno

`newfd` em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EBUSY(16)
Dispositivo ou recurso ocupado.
EINTR(4)
Chamada interrompida por um sinal.
EMFILE(24)
Limite de arquivos abertos do processo atingido.

Relacionadas