A. Willemer Wie werde ich UNIX-Guru
| | I ANWENDUNG |
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.
|
II ADMINISTRATION |
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel
|
III NETZWERK |
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls
|
IV DAS X-WINDOW SYSTEM |
Die grafische Oberfläche von UNIX einrichten und nutzen
|
V PROGRAMMIERUNG VON SHELLSKRIPTEN |
Automatisieren von Tasks durch Shell-Skripte.
|
VI PERL |
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk
|
VII PROGRAMMIERWERKZEUGE |
C-Compiler, Analyse-Tools, CVS, yacc, diff
|
VIII UNIX-SYSTEMAUFRUFE |
UNIX-Befehle in eigenen Programmen nutzen
|
IX LITERATUR |
Weiterführende Literatur zu UNIX und LINUX
|
| |
Der Systemaufruf exec() überlädt den aktuellen Prozess mit dem Inhalt einer
ausführbaren Datei und startet sie. Da der alte Speicherinhalt überschrieben
wurde, gibt es kein Zurück mehr.
Vor dem exec() wird typischerweise ein fork()
aufgerufen. Ein Programmaufruf der Shell beispielsweise läuft so ab, dass
zunächst die Shell fork() aufruft. Der Sohnprozess ruft nun exec() mit
dem Programmnamen auf, der in der Shell eingegeben wurde. Der Vaterprozess
dagegen ruft wait() auf und wartet auf das Ende des Sohnes.
Da diese Funktionalität recht häufig auftritt, gibt es einen eigenen Aufruf
namens system() . Als Parameter erhält er den Programmnamen. Aus Sicht
des Programmes wird das angegebene Programm gestartet und nach dem Ende des
Programms setzt das aufrufende Programm seine Aktiviät fort.
Um genau zu sein, wird eine Shell (/bin/sh) mit dem Kommando gestartet.
int system(const char *programmname)
Der Aufruf exec() ist eigentlich eine ganze Funktionsfamilie. Die verschiedenen
Verwandten werden gebraucht, um die Aufrufparameter ordentlich weiter geben
zu können.
- [execl(char *path, char *arg, ...);]
exec mit fester Anzahl von Argumenten. Der letzte Parameter muss NULL sein.
- [execlp(char *file, char *arg, ...);]
exec mit fester Anzahl von Argumenten. Der letzte Parameter muss NULL sein.
- [execle(char *path, char *arg, ..., char *env[]);]
exec mit fester Anzahl von Argumenten. Der vorletzte Parameter muss NULL sein.
Der letzte Parameter ist ein Zeiger auf die Umgebungsvariablen.
- [execv(char *path, *char arg[]);]
exec mit Übernahme einer Argumentliste als Vector wie bei main.
Das letzte Element des Parameterarrays arg muss NULL sein.
- [execvp(char *file, *char arg[]);]
exec mit Übernahme einer Argumentliste als Vector wie bei main.
Das letzte Element des Parameterarrays arg muss NULL sein.
| |
|
|
Ihre Meinung? |
|
|
|
|
| |
| |
Shopping |
|
Versandkostenfrei bestellen in Deutschland und Österreich Info
|
|
| |
| |
|