2013-09-08 5 views
0

В настоящее время я изучаю PHP и использую exec(). Я никогда не делал ничего подобного на C++, и хотя я предполагаю, что это не исключение, о котором я, похоже, не нашел, что кто-то говорит об этом здесь, поэтому я подумал, что попрошу какое-то руководство по этому вопросу ... Является ли он зависимым от ОС ? Есть ли несколько вариантов этой задачи? Как передать аргументы и получить значения возврата? ...Вызов отдельного исполняемого файла на C++?

+3

Он типа операционной системы. В системах Linux прочитайте [Advanced Linux Programming] (http://advancedlinuxprogramming.com/) и узнайте больше о [fork (2)] (http://man7.org/linux/man-pages/man2/fork.2. html), [execve (2)] (http://man7.org/linux/man-pages/man2/execve.2.html), 'system',' popen' .... –

+2

И если вы используете Windows, [CreateProcess] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx) может быть тем, что вы ищете. BTW, [system] (http://www.cplusplus.com/reference/cstdlib/system/) будет работать как на Linux, так и на Windows, но вы не сможете захватить stdout или stderr. (Чтобы сделать это, перетащите stdout и stderr в файл temp и прочитайте их.) –

ответ

1

Если вы ищете кросс-платформенные решения, я настоятельно рекомендую смотреть на boost.Process

Смежные вопросы