Посмотрите на несколько строк.Перед вызовом getopt_long
:
if (argc == 2 && !strcmp(argv[1], "-V"))
print_version();
Код имеет особый случай, который не обрабатывается обычным кодом обработки опций, для одного аргумента со значением -V
.Если существует более одного аргумента, он пропустит этот if
и обработает -V
как флаг verbose
.
Одним из последствий этого является то, что
mkfs -V -V
печатаетсообщение об ошибке:
mkfs: no device specified
Try 'mkfs --help' for more information.
Это также отмечено (в некоторых версиях) на странице руководства:
-V, --version
Показать информацию о версии и выйти.(Опция -V
будет отображать информацию о версии, только когда она является единственным параметром, в противном случае она будет работать как --verbose
.)