Lors de l'écriture d'outils pour la CLI d'UNIX, comment dois-je faire pour que le programme imprime l'aide et / ou l'utilisation?
J'utilise habituellement fprintf(stderr, "help text here");
, mais il y a plusieurs problèmes avec cela.
- Tout d'abord, je ne sais pas si je devrais utiliser
stderr
. Est-ce correct ou dois-je utiliserstdout
? - Comme vous pouvez l'imaginer, le texte d'aide est assez long, selon le nombre d'options de l'outil. Maintenant, j'ai l'habitude d'en mettre plusieurs
"strings like that\n"
dans le deuxième paramètre. Cependant, cela remplit mon code source de cinquante lignes ou plus de texte d'aide. Ce n'est pas facile à gérer du tout. Que dois-je faire à la place? - Lorsqu'un outil n'est pas écrit en C ou dans un langage de type C, j'ai tendance à utiliser ici-docs lorsque cela est possible (surtout avec Perl). Je ne peux pas utiliser ça en C, mais y a-t-il quelque chose comme ça, que je pourrais utiliser?
- J'envisageais de le mettre dans un
headerfile.h
intérieur#define HELP "help text here"
, je ne l'ai jamais vu dans la nature, je ne sais pas si je devrais vraiment l'utiliser.
Idéalement, je pourrais mettre le texte dans un fichier externe et l'inclure. Utiliser #include
pour cela semble cependant mal. Que dois-je faire alors?
L'idée est d'avoir un texte d'aide facilement gérable. L'avoir dans le code source n'est pas vraiment pratique.