У меня проблема с регистрацией для вывода из автоматической сборки.
Сборка выполняется с помощью Makefile и утилиты makefile.
Проблема в том, что обычный вывод, такой как командные строки компилятора, идет в stdout, а ошибки компиляции - в stderr.
Я хочу получить выходные данные из сборки, которые будут отображаться на экране. Так что-то вроде:
(stdout) CC -c file.cpp
(stderr) Compile error at file.cpp line 232, blah blah blah
(stdout) CC -c file2.cpp
То, что я попробовал (из сценария ksh):
make -k> build.log 2> build.log
В результате получается один файл журнала, но проблема в том, что потоки буферизуются, и поэтому все результаты в файле журнала перемешиваются.
Я мог бы записать вывод в 2 отдельных файла журнала, но тогда у меня не было бы информации о том, как склеить их обратно в один файл журнала.
Есть ли способ отключить буферизацию для stdout и stderr в этом случае?