Systemnahe Programmierung in C unter UNIX
-
1 Das UNIX-Dateisystem
-
1.1 Logische Verwaltungsstrukturen eines UNIX-Dateisystems
1.2 Verzeichnisse
1.3 Dateitypen
1.4 Gerätedateien und Gerätetreiber
-
2.1 Filepointer und Dateideskriptoren
2.2 Elementare Low-Level-Dateifunktionen
-
2.2.1 Datei anlegen, öffnen und schließen
2.2.2 Datei lesen und schreiben
2.2.3 Dateizeiger positionieren und Position bestimmen
2.2.4 Dateierzeugungsmaske einstellen und abfragen
2.2.5 Beispiele:
2.2.6 Headerdateien
-
2.3.1 Beispiele:
-
2.4.1 Verbindungen zwischen High-Level- und Low-Level-Dateifunktionen
2.4.2 Beeinflussen der Pufferung bei den High-Level-Dateifunktionen
2.4.3 Beispiele
-
2.5.1 Duplizieren eines Dateideskriptors
2.5.2 Eigenschaften eines Dateideskriptors bestimmen und verändern - Systemruf fcntl()
2.5.3 Beispiele
-
2.6.1 Allgemeines zu Nutzerkennungen und Zugriffsrechten
2.6.2 Kontrolle der Zugriffsberechtigung
2.6.3 Einstellen der Rechtematrix
2.6.4 Eigentümer und Gruppenzugehörigkeit einer Datei ändern
2.6.5 Beispiele
-
2.7.1 Verzeichnis anlegen
2.7.2 Verzeichnis lesen
2.7.3 Verzeichnis schließen
2.7.4 Verweis anlegen und löschen
2.7.5 Wechseln des aktuellen Verzeichnisses
2.7.6 Ermitteln des aktuellen Verzeichnisses
2.7.7 Beispiele
-
2.8.1 Funktionsbeschreibungen
2.8.2 Beispiele
-
2.9.1 Statusinformationen zu einer Datei ermitteln
2.9.2 Datenstruktur struct stat
2.9.3 Headerdatei stat.h
2.9.4 Beispiele
-
2.10.1 Spezialdateien anlegen
2.10.2 Dateisysteme verbinden und Trennen
2.10.3 Beispiele
-
2.11.1 Abfragen der Uhrzeit (Systemzeit)
2.11.2 Hilfsfunktionen zum Verarbeiten von Zeitinformationen
2.11.3 Aufbau der Struktur struct tm
2.11.4 Beispiel
-
3.1 Prozesse und ihre Attribute
-
3.1.1 Begriffsbestimmungen
3.1.2 Speicherbelegung eines Prozesses
3.1.3 Prozeßzustände
-
3.2.1 Prozeßerzeugung durch den Systemruf fork()
3.2.2 Beispiele
3.2.3 Parameterübergabe an die main-Funktion
3.2.4 Programmwechsel durch die Systemrufe der exec-Familie
3.2.5 Beispiele
-
3.3.1 Prozeßbeendigung
3.3.2 Prozeßkontrolle
-
3.4.1 Ermitteln von Prozeßparametern: PID, PPID, PGID
3.4.2 Erzeugen einer neuen Prozeßgruppe:
3.4.3 Abfrage der Nutzeridentifikationsnummern
3.4.4 Ändern der Nutzeridentifikationsnummern
3.4.5 Beispiele
3.6 Interprozeßkommunikation mit Signalen
-
3.6.1 Signale senden
3.6.2 Signale empfangen und behandeln
3.6.3 Signal nach vorbestimmter Zeit auslösen
3.6.4 Warten auf das Eintreffen eines Signals
3.6.5 Beispiele
3.8 Interprozeßkommunikation durch Pipes
-
3.8.1 Pipe anlegen
3.8.2 Synchronisationsmechanismen an einer Pipe
3.8.3 Beispiele
3.8.4 Komplexbeispiel