5 Stimmen

Kommandozeilenbefehle mit C

Es tut mir leid, wenn dieses Thema bereits behandelt wurde, aber ich kann es nirgendwo auf StackOverflow finden.

Im Grunde versuche ich, Dinge auszuführen, die man normalerweise über eine Windows-Eingabeaufforderung ausführt:

msiexec /i Datei.msi /q

und andere Befehle aus meinem C-Programm. Ist dies möglich?

Danke.

3voto

AndersK Punkte 34870

Unter Windows mit der Win API ShellExecute gibt Ihnen die beste Kontrolle über den Prozess Ihres Kindes. Die beiden anderen von Dave18 und Pablo genannten Methoden funktionieren jedoch auch.

2voto

cpx Punkte 16132

Versuch C システム Funktion

#include <stdlib.h>

int main ()
{

  system ("msiexec /i file.msi /q");
  return 0;
}

1voto

Pablo Santa Cruz Punkte 169147

Sie müssen eine der Funktionen aus der exec Familie von Funktionen. Hier ist eine Liste von ihnen.

Um Ihr Beispiel auszuführen, können Sie also verwenden:

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

1voto

richo Punkte 8149

Pablo und Dave haben Recht, es kommt darauf an, was Sie tun wollen.

execl lädt die neue Anwendung in den Speicher und führt sie anstelle des aktuellen Prozesses aus. Ihr Programm endet, nachdem die execl() anrufen.

Das System führt die Anwendung in einer Subshell aus. Sie können den Exit-Status der Anwendung abrufen, aber keine Informationen über die stdin/stdout-Daten der Anwendung.

Wie sehr interessiert es Sie, was nach Beginn des Prozesses passiert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X