Что копируется при вызове exec ()? - PullRequest
0 голосов
/ 19 марта 2019

Допустим, мы ввели команду wget.Насколько я понимаю, оболочка вызывает fork(), и создается дочерний процесс.В этот момент перед вызовом exec() дочерний процесс идентичен родительскому процессу, за исключением таких вещей, как идентификатор процесса.

Затем, когда вызывается exec(), ядро ​​заменяет образ дочернего процесса на * 1007.* s.

Но переменная окружения не перезаписывается, поэтому я запутался, что заменено и что осталось от родительского процесса.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Ниже моя скромная попытка ответить на ваш вопрос.Тем не менее, я боюсь, что ответ может быть слишком подавляющим.

Влияние exec () на атрибуты процесса

enter image description here

Кроме того, посетите execve справочную страницу.

0 голосов
/ 19 марта 2019

То, что вы спрашиваете, полностью зависит от системы. Для системы eunuchs будет выделена некоторая область памяти, которая не будет переназначена после exec (). В Linux я считаю, что эта область находится на верхнем уровне адресного пространства пользователя.

...