20.07.2013 Aufrufe

Mitschrieb

Mitschrieb

Mitschrieb

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

7.3 exec - anderen Programmcode ausführen 8 SHELL<br />

...<br />

jedoch niemals:<br />

Und wer bin ich? ... */<br />

Das Programmverhalten ist hier nicht exakt festgelegt - dies nennt man Nicht-Determinismus.<br />

”wait” auf Prozessende Die man- Pages dazu anschauen.<br />

7.3 exec - anderen Programmcode ausführen<br />

int main()<br />

{<br />

pid = fork();<br />

if (pid == 0) // Kind<br />

{<br />

exec (”Programmdatei”,...) //Programmdatei soll hier<br />

//”blub” ausgeben<br />

cout < < ”hallo”;<br />

}<br />

}<br />

/*<br />

Ausgabe:<br />

blub (und nur blub!) cout< < ”hallo”; nur dann, wenn exec schief geht.*/<br />

fork + exec ⇒ Neuer Prozess mit neuem Code.<br />

8 Shell<br />

• viele Shells<br />

– bash (meist loginshell)<br />

– ...<br />

• kann mehr als Programme ausführen - ist eine Programmiersprache (”Skriptsprache”,<br />

interpretierte Sprache)<br />

8.1 Komplexe Kommandos<br />

for f in *.c do mv $f Verz; done<br />

# f ist die Variable, $f steht für den Inhalt von f<br />

# Das Kommando verschiebt alle c-Dateien nach Verzeichnis Verz<br />

for ... do ... done<br />

24

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!