PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : linux Befehle von cpp aus ausführen?



06-03-2001, 22:17
Hi,
mit welchem Befehl kann ich aus einem c++ Programm heraus einen Linux Befehl ausführen?

(Ich bin ziemlicher C Anfänger, aber das wäre echt ganz nützlich. In meinen C Büchern steht über sowas nämlich nichts drin.) http://www.linuxforen.de/ubb/smile.gif

Gruß Jan

07-03-2001, 00:46
Mit
man system
kommst du erstmal weiter.

mit
exec?? und fork
hast du zwar mehr Kontrolle,
dafuer wird es auch kompilizierter. Nicht gerade Anfaengertauglich.

08-03-2001, 15:23
Danke!
Ich werd das testen!

Gruß Jan

16-03-2001, 14:34
Hallo!

Es stimmt - mit system() ist es moeglich ein Programm ausfuehren zu lassen. Allerdings laeuft das im gleichen Kontext, wie das aufrufende Programm - was einige Nachteile haben kann.

Besser ist es u.U. mit fork() einen Kindprozess zu starten, der mit exec() das entsprechende Programm ausfuehrt. Das fuehrt dann u.a. dazu, dass das aufrufende Programm nicht (unbedingt) auf die Ausfuehrung des aufgerufenen warten muss und zum anderen, das die Programme jeweils in einem eigenen Kontext laufen.

MfG.
Oliver Bildesheim

Christoph
16-03-2001, 16:14
Sehr schön ist übrigens popen().
Damit kann man die Ausgabe des Kommandos auslesen oder in die Standardeingabe des Kommandos schreiben.

Übrigens empfiehlt sich das Zulegen eines Buchs zur Unix-Systemprogrammierung.

Christoph

16-03-2001, 20:15
Was würds du denn empfehlen?
Ich hab bis jetzt noch kein Buch über cpp und Linux gefunden.

CU Jan

Christoph
19-03-2001, 17:00
Als Standardwerk gilt Stevens, "Advanced Programming in the UNIX Environment".

Es gibt auch noch ein Buch von Herold, "Unix Systemprogrammierung".

20-03-2001, 11:10
Danke für den Tip!
Jan