Когда я пишу инструменты для CLI UNIX, как мне заставить программу распечатывать справку и / или использование?
Я обычно использую fprintf(stderr, "help text here");
, но есть несколько проблем с этим.
- Во-первых, я не уверен, стоит ли мне пользоваться
stderr
. Это нормально, или я должен использоватьstdout
? - Как вы можете себе представить, текст справки довольно длинный, в зависимости от того, сколько опций у инструмента. Теперь я обычно просто ставлю несколько
"strings like that\n"
во второй параметр. Это, однако, наполняет мой исходный код пятьдесят или более строк текста справки. Это нелегко сделать вообще. Что я должен сделать вместо этого? - Когда инструмент написан не на C или C-подобном языке, я, как правило, использую здесь-документы, где это возможно (особенно заметно на Perl). Я не могу использовать это в C, но есть ли что-то подобное, что я мог бы использовать?
- Я подумывал о том, чтобы положить его
headerfile.h
внутрь#define HELP "help text here"
, я никогда не видел его в дикой природе, не знаю, стоит ли мне это использовать.
В идеале я мог бы поместить текст во внешний файл и включить его. Использование #include
для этого кажется неправильным, хотя. Что мне тогда делать?
Идея состоит в том, чтобы иметь справочный текст, которым легко управлять. Иметь его внутри исходного кода не очень удобно.