Пример реального мира - PullRequest
0 голосов
/ 03 августа 2010

Я ищу сценарий реального мира, где использование exec будет единственным доступным вариантом (проблема не может быть решена, если exec не используется)

Я знаю, что такое exec и чем он отличается от форка, но все еще интересуется проблемой реального мира, которая заставляет использовать команду exec.

1 Ответ

6 голосов
/ 03 августа 2010

Как оболочка может запустить другой процесс, без с использованием exec?

fork() (или лучше clone() в настоящее время в Linux) просто говорит о дублировании процесса. Итак, у вас есть 2 копии одного и того же процесса.

execve() (и -le, -lp, -vp, -v friends) просто говорят о том, чтобы полностью заменить текущий процесс новым процессом. (сохраняя ФД, но не намного)

Таким образом, чтобы запустить другую программу, вы должны сначала fork(), а затем exec() в одном из результирующих процессов (обычно это дочерний процесс).

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