Возможно ли, что дочерний процесс может изменить память в родительском? - PullRequest
0 голосов
/ 19 ноября 2010

Это вещи из сумеречной зоны. Мы столкнулись с этим на Ubuntu. Похоже, что errno в родительском процессе был изменен его дочерним процессом. Мы видим это в коде, который выполняется перед main, в конструкторе для разделяемой библиотеки.

Это вообще возможно? Кто-нибудь видел что-нибудь подобное?

Если errno находится в vdso, может ли быть, что эти страницы не отображаются на дочерний, пока main не будет готова к запуску? Это кажется сумасшедшим.

1 Ответ

3 голосов
/ 19 ноября 2010

Возможно ли, что дочерний процесс может изменять память в родительском процессе?

Только если он поступает из вызова vfork() или clone() с CLONE_VM (не из fork() вызова), или если эта память является общей памятью (mmap() ed MAP_SHARED память считается общей памятью).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...