Как запустить программу c из другой программы c - PullRequest
1 голос
/ 11 марта 2010

У меня есть программа c, которую я могу запустить из командной строки. Возможно ли для меня это приложение в моей другой c программе? Если да, то как? Все результаты Google показывают мне, как это сделать с помощью pthread? Будет ли это работать? Я подозреваю, что мне нужен новый процесс для моей программы c.

Спасибо.

Ответы [ 4 ]

3 голосов
/ 11 марта 2010

Вы изучали использование fork() и exec()? Fork разделит процесс, exec позволяет запустить новую программу из одного экземпляра, который был fork 'd.

Первый удар по Google:

http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html

Как уже упоминалось, детали могут различаться в зависимости от того, какую ОС вы используете.

3 голосов
/ 11 марта 2010

Это зависит от системы, но обычно есть execve или что-то в этом роде, и всегда можно использовать system("/path/to/program");, которое также зависит от системы

0 голосов
/ 11 марта 2010

Функция CreateProcess - путь в Windows.

Вы можете использовать функцию system () , чтобы буквально выполнять команды на консоли, но я не помню, блокирует она или нет.

Для Linux смотрите execv . На этой странице есть родительский модуль linux, запускающий дочернее приложение. В linux есть канал связи между двумя ..

Кроме того, execve запустится по имени исполняемого файла.

0 голосов
/ 11 марта 2010

В дополнение к явным fork / exec и system существует popen. (Все в unixish окружающей среде).

Вам будет оказана более эффективная помощь, если вы будете более четко представлять себе, в какой среде вы работаете, и как вам нужно взаимодействовать с дочерним процессом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...