Я подозреваю, что, не увидев исходный код prog1
, я не могу понять, что prog1
не очищает свои выходные буферы.То есть он имеет код, который выглядит следующим образом:
i = 42;
fprintf(stderr, "result: %d\n", i);
Отформатированный вывод (т. Е. "Result: 42 \ n") сохраняется в выходном буфере stderr
, ожидая записи подходящего момента.,Но, прежде чем это произойдет, timed-run
убивает prog1
сигналом.
Вы можете либо периодически вызывать fflush(stderr)
, либо менять тип буферизации (с помощью setbuf
или setvbuf
),или поймайте сигнал и позвоните fflush(stderr)
при завершении программы.