История изменений
Исправление firkax, (текущая версия) :
Там всё хуже - ядро при exec'е засовывает то, что передал программист / runtime, в отдельный блок стека вместе с argv.
Что значит хуже? Вызывающий код передал пачку данных для вызываемого, ядро её положило в условленное место, что тебя не устроило то?
И по итогу у нас один сет на старте процесса, хер пойми какой сет во время работы и милостью сишного рантайма и костылями в ядре что-то третье при exec'е
Ты какую-то чушь пишешь. Есть то, что проге передали на старте, и есть то, что прога зачем-то себе исправила в глобальной переменной environ, поддерживаемой силами libc. Никакого третьего сета нет. Но ты разумеешься можешь написать код, который хоть десяток их хранит в условленных местах.
сишного рантайма
Нелепое словосочетание.
костылями в ядре
Нет в ядер никаких костылей, для него env это блоб, который одна прога передаёт другой через сисколл execve()/fexecve(). И все остальные exec-и, если что - это libc-шные обёртки над execve().
Исходная версия firkax, :
Там всё хуже - ядро при exec'е засовывает то, что передал программист / runtime, в отдельный блок стека вместе с argv.
Что значит хуже? Вызывающий код передал пачку данных для вызываемого, ядро её положило в условленное место, что тебя не устроило то?
И по итогу у нас один сет на старте процесса, хер пойми какой сет во время работы и милостью сишного рантайма и костылями в ядре что-то третье при exec'е
Ты какую-то чушь пишешь. Если то, что проге передали на старте, и есть то, что прога зачем-то себе исправила в глобальной переменной environ, поддерживаемой силами libc. Никакого третьего сета нет. Но ты разумеешься можешь написать код, который хоть десяток их хранит в условленных местах.
сишного рантайма
Нелепое словосочетание.
костылями в ядре
Нет в ядер никаких костылей, для него env это блоб, который одна прога передаёт другой через сисколл execve()/fexecve(). И все остальные exec-и, если что - это libc-шные обёртки над execve().