Kiedy piszę narzędzia do interfejsu CLI systemu UNIX, jak powinienem sprawić, aby program wydrukował pomoc i / lub użycie?
Zwykle używam fprintf(stderr, "help text here");, ale jest z tym kilka problemów.
- Po pierwsze, nie jestem pewien, czy powinienem użyć
stderr. Czy to w porządku, czy powinienem użyćstdout? - Jak możesz sobie wyobrazić, tekst pomocy jest dość długi, w zależności od liczby opcji dostępnych w narzędziu. Teraz zwykle umieszczam kilka
"strings like that\n"w drugim parametrze. To jednak wypełnia mój kod źródłowy pięćdziesięcioma lub więcej liniami tekstu pomocy. To wcale nie jest łatwe do opanowania. Co powinienem zamiast tego zrobić? - Kiedy narzędzie nie jest napisane w języku C lub języku podobnym do C, zwykle używam tu-dokumentów tam, gdzie to możliwe (najlepiej w Perlu). Nie mogę tego użyć w C, ale czy jest coś takiego, czego mógłbym użyć?
- Zastanawiałem się nad umieszczeniem go w
headerfile.hśrodku#define HELP "help text here", nigdy nie widziałem go na wolności, nie wiem, czy powinienem go użyć.
Najlepiej byłoby umieścić tekst w zewnętrznym pliku i dołączyć go. Korzystanie #includez tego wydaje się jednak niewłaściwe. Więc co powinienem zrobić?
Chodzi o to, aby mieć tekst pomocy, który jest łatwy do zarządzania. Posiadanie go w kodzie źródłowym nie jest naprawdę wygodne.