LINUX.ORG.RU

argc, argv

 ,


1

4

А есть ли что подробно почитать по форматам передаваемых данных при вызове программы в функцию main для разных ОС? Стандарт не предлагать, там подробно это не описано.

Есть ли какая зависимость от вызывающих интерпретаторов, вроде bash?

★★★★★

В argc и argv ничего особенного не видел. Тебе возможно будет больше интересней почитать про окружение и переменные среды.

neon1ks ★★
()
Ответ на: комментарий от neon1ks

Допустим, кто разбивает параметры пробелами — ОС, интерпретатор, или инициализатор бинаря? Имею в виду, в аргв же уже массив строк приходит, а не одна строка.

next_time ★★★★★
() автор топика
Последнее исправление: next_time (всего исправлений: 1)
Ответ на: комментарий от anonymous

спасибо, в точности это мне и было нужно

next_time ★★★★★
() автор топика

В разных ос по разному. В windows в gui приложения аргументы передаются одной строкой в функцию WinMain@16. Т.е разбивка на аргументы ложится на программу. Если используется main или _tmain, то там вставляется кривенький враппер который аттачит консоль и парсит аргументы.
В linux в процесс уже передаются int argc, const char **argv, const char **envp

mittorn ★★★★★
()

В macOS, к примеру, при старте приложения по его зависимости (привязка к типу файла) из Finder, в качестве аргумента командной строки придет -psn_0_XXXXX. А путь к файлу/файлам будет передан через дергание отдельного метода openFile / openFiles.

Да, в macOS как обычно все через жопу.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

макос просто не такой как все

Ну да, как-то так -
https://ru.wikipedia.org/wiki/Think_Different
А потому весь интерфейс на костылях, дабы этой ThinkDifferent'ной макосью можно было хоть как-то пользоваться.

andreyu ★★★★★
()
Ответ на: комментарий от mittorn

andreyu

Вот как, спасибо. В общем, для разнообразных ОС ответ и хотелось найти.

next_time ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.