Задать вопрос
@sitev_ru
sitev.ru - мой блог ...

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

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

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


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

Почему так происходит?
  • Вопрос задан
  • 281 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    DevOps для эксплуатации и разработки
    7 месяцев
    Далее
  • Яндекс Практикум
    Go-разработчик с нуля
    8 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
Решения вопроса 2
Нужно вначале сделать `fork()`, а уже внутри нового процесса -- `execl()`.
Ответ написан
Комментировать
@abcd0x00
Просто завершается форкнутый процесс.

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

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

Похожие вопросы