Немного об argv [0]
Raymond Chen, популярный Microsoft-блоггер описывает роль и смысл argv[0], т.е. «нулевого» аргумента, передающегося программе при запуске.
Как правило, этот аргумент не используется и там лежит «имя программы», обычно это имя исполняемого файла. Когда ОС запускает по запросу пользователя приложение она сама подставляет нужное значение. Хотя теоретически там может быть что угодно; используя системные API легко можно вызвать приложение с произвольным нулевым аргументом.
В Unix есть и более простой способ передать нужное значение: (символические) ссылки. Например, если для исполняемого файла foo создать линк с именем bar то при запуске bar программа foo получит именно bar.
Некоторые программы активно этот трюк используют, например sendmail, Vim или GNU grep. Скажем, /bin/view запускает vi в режиме «только чтение». Такого же эффекта можно достигнуть и при помощи обычных параметров командной строки, конечно (в данном случае: vi -R), но запомнить «альтернативное» имя часто проще и понятнее, чем использовать дополнительную опцию.
Один из встраиваемых линукс-дистрибутивов даже компилировал ВСЕ файлы из /bin в ОДИН бинарный файл и затем выбирал нужную программу по нулевому аргументу. Для экономии дискового пространства. Хотя это уже, скорее, клиника. ;-)
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
6 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.