Voltar à lista
Linux x86_64Arquivos & E/S#276

tee

Duplica dados de um pipe para outro sem consumi-los do pipe de origem.

Descrição

Como o utilitário `tee(1)`, mas em nível de pipes do kernel — permite, por exemplo, inspecionar dados em trânsito entre dois processos sem interrompo fluxo original.

man 2Desde o kernel 2.6.17

Assinatura

ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);

Parâmetros

ParâmetroTipoDescrição
fd_inintPipe de origem.
fd_outintPipe de destino.
lensize_tNúmero máximo de bytes a duplicar.
flagsunsigned intSPLICE_F_NONBLOCK, entre outras.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fd_inint
rsiargumento 2fd_outint
rdxargumento 3lensize_t
r10argumento 4flagsunsigned int

Valor de retorno

Número de bytes duplicados em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EINVAL(22)
Argumento inválido.
ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas