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

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

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

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


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

Почему так происходит?
  • Вопрос задан
  • 282 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    AL-1802 Администрирование Astra Linux Special Edition 1.8
    2 недели
    Далее
  • Skillbox
    Linux для робототехников
    3 месяца
    Далее
  • Skillfactory
    Профессия C++ разработчик
    11 месяцев
    Далее
Решения вопроса 2
Нужно вначале сделать `fork()`, а уже внутри нового процесса -- `execl()`.
Ответ написан
Комментировать
@abcd0x00
Просто завершается форкнутый процесс.

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

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

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