Новый процесс создается с помощью fork / exec. Exec устанавливает аргументы командной строки, но я не вижу, чтобы он устанавливал количество этих аргументов для вставки argc
.
main()
должна быть первой функцией, запущенной в новом процессе, но argc
к этому моменту уже установлена.
Где это установлено? Это должен быть какой-то код установки, который подсчитывает параметры перед вызовом main
, но ничего из того, что я прочитал, не объясняет, что делает этот код установки или где он находится.
Это в libc
? Это то же самое на каждой ОС и покрыто какой-то спецификацией? Где я могу найти то, что происходит в коде установки, кроме этого? Это называется до создания глобалов?