Voltar à lista
Linux x86_64IPC & sincronização#22

pipe

Cria um pipe anônimo unidirecional, retornando um par de descritores de leitura e escrita.

Descrição

O mecanismo de IPC mais simples do Unix: dados escritos em `fds[1]` podem ser lidos em `fds[0]`, na ordem em que foram escritos (FIFO), tipicamente usado entre processo pai e filho após `fork`, ou para encadear comandos (`|` no shell).

Header: unistd.hman 2

Assinatura

int pipe(int[2] pipefd);

Parâmetros

ParâmetroTipoDescrição
pipefdint[2]Recebe dois descritores: pipefd[0] para leitura, pipefd[1] para escrita.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1pipefdint[2]

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EMFILE(24)
Limite de arquivos abertos do processo atingido.
ENFILE(23)
Limite de arquivos abertos no sistema atingido.

Relacionadas

Equivalente em Windows Win32