Mitschrieb
Mitschrieb
Mitschrieb
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