Команды командной строки с C


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

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

Msiexec / i файл.msi / q

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

Спасибо.

4 5

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.

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