Должна ли командная строка & ldquo; использование & rdquo; быть напечатанным на стандартный вывод или стандартный вывод?

Из-за точного формата сериализованного файла добавление действительно испортит его. Вы должны записать все объекты в файл как часть одного и того же потока, иначе он будет сбой при чтении метаданных потока, когда он ожидает объект.

Вы можете прочитать спецификацию Serialization Specification для более подробной информации или (проще) прочитать эту нить , где Roedy Green говорит в основном то, что я только что сказал.

37
задан AShelly 16 September 2014 в 22:22
поделиться

4 ответа

Никогда не задумывался об этом, но почему бы не написать инструкции по использованию в stderr, если программа вызывалась без аргументов или с неправильными аргументами, и не записать их в stdout при вызове с аргументом - help (или подобным)? Таким образом, если использование отображается из-за ошибки, оно переходит на stderr, а если это не ошибка, потому что пользователь запросил это, переходит на stdout. В чем-то это кажется логичным.

44
ответ дан 27 November 2019 в 02:39
поделиться

По моему мнению, критерий - это то, каким образом появляется информация. Если он требует немедленной реакции или внимания, я помещаю его в stderr (потому что он не буферизован). Если он как-то информативен и не содержит ошибок, то это для stdout.

2
ответ дан 27 November 2019 в 02:39
поделиться

Я бы использовал STDERR, поскольку простое помещение его в STDOUT может вызвать проблемы с конвейерным выводом, и он появится в журналах для cronjobs, чтобы вы могли легче заметить ошибку .

3
ответ дан 27 November 2019 в 02:39
поделиться

Это может быть только мнение, но я думаю, что писать в stderr лучше всего делать. Таким образом, сообщение об использовании появляется, если пользователь совершает ошибку, даже если нормальный вывод был перенаправлен.

4
ответ дан 27 November 2019 в 02:39
поделиться
Другие вопросы по тегам:

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