История изменений
Исправление hobbit, (текущая версия) :
Я не знаю, возможно «несколько тысяч» — это действительно перебор. Но вот типовые случаи действительно разумно разруливать библиотекой.
Например, задание взаимно исключающих наборов ключей, о которых речь в новости. Или заранее указать, что допустим, ключ -p
всегда должен сопровождаться после пробела положительным номером порта, а ключ -d
— неотрицательным числом секунд. Если эти параметры отсутствуют или присутствуют в неправильном формате, нужно вывести сообщение об ошибке.
Когда у тебя под рукой только argc и argv, для таких элементарнейших вещей всякий раз приходится городить трёхэтажный велосипед. Это, конечно, не смертельно, но подбешивает, поскольку отвлекает от прикладной задачи, ну и громоздкость исходников увеличивает.
В принципе, getopt.h
может быть выходом, но он, ЕМНИП, понимает только однобуквенные ключи, а их не всегда хватает, да и во многих консольных программах, даже GNUтых, считается хорошим тоном иметь один и тот же ключ как в однобуквенном, так и в развёрнутом вариантах.
Исходная версия hobbit, :
Я не знаю, возможно «несколько тысяч» — это действительно перебор. Но вот типовые случаи действительно разумно разруливать библиотекой.
Например, задание взаимно исключающих наборов ключей, о которых речь в новости. Или заранее указать, что допустим, ключ -p
всегда должен сопровождаться после пробела положительным номером порта, а ключ -d
— неотрицательным числом секунд. Если эти параметры отсутствуют или присутствуют в неправильном формате, нужно вывести сообщение об ошибке.
Когда у тебя под рукой только argc и argv, для таких элементарнейших вещей всякий раз приходится городить трёхэтажный велосипед. Это, конечно, не смертельно, но подбешивает, поскольку отвлекает от прикладной задачи, ну и громоздкость исходников увеличивает.