Para ler sua entrada, xargs
usa a função read
(consulte também a página de manual do Linux correspondente ).
read
lê os próximos dados disponíveis de um descritor de arquivos em uma área de memória especificada pelo programa de chamada. Conforme usado por xargs
, read
aguarda até que os dados estejam disponíveis ou ocorra um erro ou determina que não haverá mais dados disponíveis. Ele retorna respectivamente um inteiro positivo, -1 ou 0 em cada um desses casos.
Para determinar quando terminar de ler sua entrada (sua entrada padrão ou a entrada especificada pela opção -a
), xargs
procurará o marcador de fim de arquivo especificado (se a opção -E
tiver sido usada ), ou um valor de retorno 0 de read
.
Você pode ver isso em ação executando
printf '%s ' {1..1024} | strace -e read xargs -s 2048 -x