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

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

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

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


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

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

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

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

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