Команды командной строки с C
Извините, если это было описано раньше, но я не могу найти его нигде на StackOverflow.
В основном я пытаюсь запустить то, что вы обычно запускаете в командной строке Windows:
Msiexec / i файл.msi / q
И другие команды из моей программы на языке Си. Возможно ли это?
Спасибо.
4 ответа:
В windows с помощью win API ShellExecute даст вам лучший контроль над вашим дочерним процессом. Однако другие два метода, упомянутые Dave18 и Pablo, также работают.
Попробуйте C system function
#include <stdlib.h> int main () { system ("msiexec /i file.msi /q"); return 0; }
Вам нужно использовать одну из функций из семейства функций
exec
. Вот их список.Итак, для запуска примера вы можете использовать:
execl("msiexec","/i","file.msi","/q",NULL);
Пабло и Дэйв правы, в зависимости от того, что вы хотите сделать.
execl
загружает новое приложение в память и запускает его вместо текущего процесса. Ваша программа завершится после вызоваexecl()
.Система запускает приложение в подрешетке, вы можете получить его статус выхода, но не какую-либо информацию о его данных stdin/stdout.
Насколько вас интересует то, что происходит после запуска процесса?