Команды командной строки с C - PullRequest
5 голосов
/ 23 декабря 2010

Извините, если это уже было рассмотрено, но я не могу найти его в StackOverflow.

Обычно я пытаюсь запустить то, что вы обычно запускаете в командной строке Windows:

msiexec / i file.msi / q

и другие команды из моей программы на Си. Возможно ли это?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 23 декабря 2010

В окнах, использующих Win API ShellExecute даст вам лучший контроль над вашим дочерним процессом.Однако два других метода, упомянутых Dave18 и Pablo, также работают.

2 голосов
/ 23 декабря 2010

Попробуйте C Система Функция

#include <stdlib.h>

int main ()
{

  system ("msiexec /i file.msi /q");
  return 0;
}
1 голос
/ 23 декабря 2010

Пабло и Дейв правы, в зависимости от того, что вы хотите сделать.

execl загружает новое приложение в память и запускает его вместо текущего процесса.Ваша программа завершится после вызова execl().

Система запускает приложение в подоболочке, вы можете получить его статус завершения, но не любую информацию о его данных стандартного ввода / вывода.

Насколько это интересноВы в том, что происходит после запуска процесса?

1 голос
/ 23 декабря 2010

Вам необходимо использовать одну из функций из семейства функций exec. Вот их список.

Итак, для запуска вашего примера вы можете использовать:

execl("msiexec","/i","file.msi","/q",NULL);
...