Как зарегистрироваться, делают вывод, не буферизуя от stdout и stderr

Кажется, вы можете сделать Packet.buffer, чтобы стать proto.Buffer

type Packet struct {
    length uint32
    buffer proto.Buffer
}
...
var packet Packet
packet.length = YouLength
packet.buffer = proto.NewBuffer(make([]byte, YouLength))
//Then you can Marshall in Packet directly and it  may be reused.
err := packet.Marshal(message)

9
задан Jeroen Dirks 17 February 2009 в 19:03
поделиться

4 ответа

make -k > build.log 2>&1

Это должно работать лучше на Вас, потому что это не перенаправляет stderr и stdout отдельно, но перенаправляет stderr к stdout, который должен составить синхронизацию буферизации.

Если Вы хотите зарегистрировать его в файл, а также распечатать его к консоли:

make -k 2>&1 | tee build.log
25
ответ дан 4 December 2019 в 07:48
поделиться

Попробуйте это

make -k > build.log 2>&1
5
ответ дан 4 December 2019 в 07:48
поделиться

Я мог бы захватить вывод в 2 отдельные файлы журнала, но тогда я бы не знаю, как их приклеить обратно вместе в один лог-файл.

Склеить их обратно сложно, но есть и правильный ответ, и это работает! Смотрите « Как сохранить или перенаправить stdout и stderr в разные файлы? », автор Vivek Gite.

0
ответ дан 4 December 2019 в 07:48
поделиться

setbuf (стандартный вывод, NULL); -> отключает буферизацию стандартного вывода

-2
ответ дан 4 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: