Есть ли способ, которым я могу запустить другую программу, не делая fork ()? - PullRequest
0 голосов
/ 24 февраля 2010

У меня есть основная программа, написанная на C, она мне нужна, чтобы запустить другой процесс параллельно, Я использовал функцию

system("./server");

проблема в том, что этот процесс содержит цикл while (1), поэтому он никогда не возвращается в основное приложение ...

Есть ли способ запустить программу без форка ()?

спасибо!

Ответы [ 2 ]

5 голосов
/ 24 февраля 2010

В UNIX / Linux fork() (обычно сопровождается exec()) - единственный способ создать новый процесс.

Все остальные способы (system(), в некоторых ОС spawn()) действительно используют fork().

Так что fork() просто неизбежно (для UNIX / Linux).

5 голосов
/ 24 февраля 2010

Конечно - просто сделайте это:

system("./server &");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...