O uso do processo filho é definido em algum lugar dentro das chamadas do sistema wait3
ou wait4
por meio de um ponteiro struct rusage
( wait4(2)
). Em as fontes bash , encontramos:
$ egrep -r 'wait[34][[:blank:]]*\(' .
./jobs.c: wait3 ((union wait *)statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (int *)0)
$
O espaço em branco (struct rusage *)0
indica que o uso do recurso não será retornado para bash
. Uma pesquisa de struct rusage
exibe a função time_command
em execute_cmd.c
, e isso parece coletar informações de uso por meio de getrusage(2)
. No entanto, isso é para TIMEFORMAT
do time
builtin e não parece cruzar com o código do histórico. Sem remendar bash
, acho que você teria que fazer algum tipo de ação envolvendo a execução de tudo em time
e, em seguida, capturar o erro padrão em que as informações de horário aparecem em algum arquivo?