在为UNIX的CLI编写工具时,应如何使程序打印出帮助和/或用法?
我通常使用fprintf(stderr, "help text here");
,但是有几个问题。
- 首先,我不确定是否应该使用
stderr
。可以,还是应该使用stdout
? - 可以想象,帮助文本很长,具体取决于该工具有多少选项。现在,我通常只需
"strings like that\n"
在第二个参数中输入几个即可。但是,这用五十行或更多行帮助文本填充了我的源代码。根本不容易管理。我该怎么办呢? - 当工具不是用C或类似C的语言编写时,我倾向于在可能的情况下使用here-docs(在Perl中最为明显)。我不能在C语言中使用它,但是我可以使用类似的东西吗?
- 我正在考虑将其放在a的
headerfile.h
内部#define HELP "help text here"
,我从未在野外看到它,也不知道我是否应该真正使用它。
理想情况下,我可以将文本放在外部文件中并包含它。但是,使用#include
它似乎是错误的。那我该怎么办?
这个想法是要有一个易于管理的帮助文本。将其包含在源代码中并不是很方便。