Выполните внешнюю команду и дождитесь ее завершения в Linux - PullRequest
1 голос
/ 21 марта 2011

Простой вопрос: как проще всего выполнить внешнюю программу (с параметрами) из C ++ (используя g ++ и Linux)?Есть ли более простой способ, чем делать fork / exec и ждать?Мне просто нужно выполнить команду и дождаться ее завершения.

Ответы [ 3 ]

6 голосов
/ 21 марта 2011

Вид зависит от того, насколько сильно вы хотите взаимодействовать с программой.

Если нет, вы можете просто использовать system("....");

. Если вам нужен ввод / вывод, товы можете использовать popen();

И если даже этого недостаточно, вы в конечном итоге получите fork(), exec(), wait(), dup() и другие функции из этого семейства.

2 голосов
/ 21 марта 2011

Функция system () :

#include 

int main (void)
{
        system("ls /home");
        return 0;
}
0 голосов
/ 21 марта 2011

Я научился много использовать команду screen , особенно для долго выполняющихся сценариев.Это может быть немного излишним для вас, но в этом случае он определенно должен выполнить эту работу.

...