@sitev_ru
sitev.ru - мой блог ...

Почему execl выходит из процесса?

Форкаю процесс, в нём запускаю с помощью execl другую программу. Делаю это в цикле:

pid_t pid = fork();
if (pid == 0) {
    while(1) {
        execl(...);
    }
}


Казалось бы после завершения выполнения execl() цикл должен заново запустить execl(), но не тут то было. Просто завершается форкнутый процесс. Если выполняю через system(), то всё работает нормально, но нужно через execl().

Почему так происходит?
  • Вопрос задан
  • 280 просмотров
Решения вопроса 2
Нужно вначале сделать `fork()`, а уже внутри нового процесса -- `execl()`.
Ответ написан
Комментировать
@abcd0x00
Просто завершается форкнутый процесс.

Он не завершается, он заменяется на то, что в execl(), и завершается то, что запустилось там.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы