Suchen und Finden
Service
Liebe Leserin, lieber Leser,
3
Auf einen Blick
4
Inhalt
6
Vorwort des Autors
24
Vorwort 2. Auflage
24
Vorwort 3. Auflage
25
Danksagung
25
Vorwort der Fachgutachter
28
1 Einführung
30
1.1 Anforderung an den Leser
30
1.2 Anforderung an das Betriebssystem
31
1.3 Von UNIX ...
31
1.4 ... zu Linux
33
1.5 Der Compiler GCC – eine kurze Einführung
34
1.6 POSIX, X/OPEN und ANSI C
38
1.7 Übersicht zum Buch
40
1.8 Schreibkonventionen
42
1.9 Notationsstil
43
1.10 Weitere Hilfen
43
2 E/A-Funktionen
44
2.1 Elementare E/A-Funktionen
44
2.2 Filedeskriptor
45
2.3 Funktionen, die den Filedeskriptor verwenden
47
2.4 Standard-E/A-Funktionen
85
2.5 Mit Verzeichnissen arbeiten
95
2.6 Fehlerbehandlung
113
2.7 Ausblick
115
3 Attribute von Dateien und Verzeichnissen
116
3.1 Struktur stat
116
4 Zugriff auf Systeminformationen
130
4.1 Informationen aus dem /proc-Verzeichnis herausziehen
130
4.2 Hardware-/Systeminformationen ermitteln
132
4.3 Prozessinformationen
136
4.4 Kernel-Informationen
140
4.5 Filesysteme
147
4.6 Weiterführendes
147
5 Devices – eine einfache Verbindung zur Hardware
150
5.1 Die Gerätedateitypen
150
5.2 Die Gerätedateinummern
151
5.3 Zugriff auf die Gerätedateien
152
5.4 Gerätenamen
153
5.5 Spezielle Gerätedateien
154
5.6 Gerätedateien in der Praxis einsetzen
155
6 System- und Benutzerdateien
170
6.1 Die Datei /etc/passwd
170
6.2 Die Datei /etc/shadow
175
6.3 Die Datei /etc/group
180
6.4 uname – Informationen zum lokalen System erfragen
184
6.5 Das Verzeichnis /etc/skel und Network Information Service ( NIS)
185
6.6 Dateien für Netzwerkinformationen
185
7 Dämonen, Zombies und Prozesse
188
7.1 Was ist ein Prozess?
188
7.2 Prozesskomponente
189
7.3 Prozesse überwachen – ps, top, kpm
197
7.4 Lebenszyklus eines Prozesses
199
7.5 Umgebungsvariablen eines Prozesses
201
7.6 Ressourcenlimits eines Prozesses
207
7.7 Prozesserkennung
210
7.8 Erzeugung von Prozessen – fork()
212
7.9 Warten auf einen Prozess
221
7.10 Die exec-Familie
227
7.11 Kommandoaufrufe aus dem Programm – system()
232
7.12 Dämonprozesse
233
7.13 Rund um die Ausführung von Prozessen
243
7.14 Zusammenfassung und Ausblick
255
8 Signale
256
8.1 Grundlage zu den Signalen
256
8.2 Das neue Signalkonzept
261
8.3 Signalmenge initialisieren
261
8.4 Signalmenge hinzufügen oder löschen
262
8.5 Signale einrichten oder erfragen
262
8.6 Signal an den eigenen Prozess senden – raise()
268
8.7 Signale an andere Prozesse senden – kill()
268
8.8 Zeitschaltuhr einrichten – alarm()
269
8.9 Prozesse stoppen, bis ein Signal eintritt – pause()
269
8.10 Prozesse für eine bestimmte Zeit stoppen – sleep() und usleep()
270
8.11 Signalmaske erfragen oder ändern – sigprocmask()
270
8.12 Prozess während einer Änderung der Signalmaske stoppen – sigsuspend()
271
8.13 Prozesse synchronisieren
272
9 IPC – Interprozesskommunikation
276
9.1 Unterschiedliche Interprozesskommunikations-Techniken im Überblick
277
9.2 Gründe für IPC
283
9.3 Pipes
284
9.4 System-V-Interprozesskommunikation
319
9.5 Semaphore
322
9.6 Message Queues
329
9.7 Shared Memory
340
10 Threads
350
10.1 Unterschiede zwischen Threads und Prozessen
350
10.2 Thread-Bibliotheken
351
10.3 Kernel- und User-Threads
352
10.4 Scheduling und Zustände von Threads
352
10.5 Die grundlegenden Funktionen zur Thread-Programmierung
353
10.6 Die Attribute von Threads und das Scheduling
363
10.7 Threads synchronisieren
368
10.8 Threads abbrechen (canceln)
392
10.9 Erzeugen von Thread-spezifischen Daten (TSD-Data)
396
10.10 pthread_once – Codeabschnitt einmal ausführen
399
10.11 Thread-safe (thread-sichere Funktionen)
401
10.12 Threads und Signale
402
10.13 Zusammenfassung und Ausblick
406
11 Netzwerkprogrammierung
408
11.1 Einführung
408
11.2 Aufbau von Netzwerken
409
11.3 TCP/IP – Aufbau und Struktur
412
11.4 TCP Socket
415
11.5 Kommunikationsmodell
416
11.6 Grundlegende Funktionen zum Zugriff auf die Socket- Schnittstelle
417
11.7 Aufbau eines Clientprogramms
425
11.8 Aufbau des Serverprogramms
428
11.9 IP-Adressen konvertieren, manipulieren und extrahieren
433
11.10 Namen und IP-Adressen umwandeln
439
11.11 Der Puffer
447
11.12 Standard-E/A-Funktionen verwenden
448
11.13 Parallele Server
449
11.14 Syncrones Multiplexing – select()
463
11.15 POSIX-Threads und Netzwerkprogrammierung
482
11.16 Optionen für Sockets setzen bzw. erfragen
486
11.17 UDP
490
11.18 Unix-Domain-Sockets (IPC)
497
11.19 Multicast-Socket
503
11.20 Nicht blockierende I/O-Sockets
510
11.21 Etwas zu Streams und TLI, Raw Socket, XTI
513
11.22 IPv4 und IPv6
515
11.23 Netzwerksoftware nach IPv6 portieren
516
11.24 Sicherheit und Verschlüsselung
518
12 MySQL und PostgreSQL
520
12.1 Relationales Datenbanksystem
520
12.2 Relationaler Datenbankserver
522
12.3 SQL-Server im Überblick
523
12.4 MySQL
523
12.5 MySQL C-API
547
12.6 Beispiel eines Newssystems mit MySQL
584
12.7 Neue SQL-Funktionen für die Shell – MySQL erweitern
610
12.8 MySQL-Funktionen mit der UDF-Schnittstelle entwerfen
611
12.9 PostgreSQL – objektrelationales Datenbankverwaltungssystem
620
13 Terminal E/A und Benutzerschnittstellen für die Konsole
654
13.1 termios
654
13.2 terminfo
672
13.3 ncurses – Halbgrafik
680
14 GTK+
716
14.1 Was ist GTK+?
716
14.2 GTK+-Anwendungen übersetzen
720
14.3 Eine Einführung in die Glib-Bibliothek
721
14.4 Grundlagen der GTK+-Programmierung
742
14.5 Fenster – GtkWindow
751
14.6 Anzeige-Elemente
759
14.7 Behälter
766
14.8 Buttons und Toogled-Buttons
778
14.9 Dateneingabe
786
14.10 Menü und Toolbar
796
14.11 Mehrzeiliger Text
813
14.12 Auswählen (Selection)
825
14.13 Events
834
14.14 Weitere Widget- und GTK+-Elemente im Überblick
839
15 Übersicht über weitere beliebte GUI- Bibliotheken
842
15.1 gtkmm – GTK+ für C++
842
15.2 wxWidget
846
15.3 FLTK
849
15.4 Qt
850
15.5 Die niedrige Ebene – X-Window-Programmierung
853
15.6 Multimediabibliotheken
853
16 Werkzeuge für Programmierer
860
16.1 Der Compiler gcc
860
16.2 Make
867
16.3 Bibliotheken erstellen
881
16.4 RPM
889
16.5 RCS und CVS
899
16.6 Zeitmessung von Programmen
924
16.7 Debuggen mit gdb und ddd
930
16.8 STRACE – Systemaufrufe verfolgen
940
16.9 Memory Leaks und unerlaubte Speicherzugriffe
943
16.10 Ausblick
949
17 Shellprogrammierung
952
17.1 Was ist eine Shell und was kann sie?
952
17.2 Was sind Shellskripts und wann ist ihr Einsatz sinnvoll?
952
17.3 Wann brauche ich keine Shellskripts?
954
17.4 Verschiedene Shelltypen
954
17.5 Shellskripts ausführen
956
17.6 Vom Shellskript zum Prozess
965
17.7 Datenstrom (Stream) umleiten
966
17.8 Ersatzmuster (Namen-Expansion) zur Suche verwenden
973
17.9 Variablen
977
17.10 Quotings
998
17.11 Kommandozeilenargumente
1000
17.12 Kontrollstrukturen
1007
17.13 Terminal-Eingabe und -Ausgabe
1029
17.14 Funktionen
1051
17.15 Signale
1055
17.16 Prozess- und Skriptausführung
1059
17.17 Ein Shellskript bei der Ausführung
1066
A Sicherheit unter Linux
1068
A. 1 Viren und Trojaner
1068
A. 2 Der Superuser (su)
1069
A. 3 Überlaufen von Logfiles
1069
A. 4 Zugriffsrechte auf Dateien
1070
A. 5 Das SUID-Bit
1070
A. 6 Programme ohne Ausführrechte
1072
A. 7 Buffer Overflow (Pufferüberlauf)
1072
A. 8 Race Condition
1074
A. 9 Temporäre Dateien
1075
A. 10 chroot
1076
A. 11 Umgebungsvariablen
1077
A. 12 Zugriffsrechte – häufig gemachte Fehler
1080
A. 13 system() und popen()
1080
A. 14 Offene Filedeskriptoren
1081
A. 15 Core Dump
1083
A. 16 SQL Injection
1084
A. 17 Filedeskriptor-Überlauf mit select()
1086
B Funktionsreferenz
1088
B. 1 ANSI C
1088
B. 2 ANSI C99
1106
B. 3 Elementare E/A-Funktionen
1113
B. 4 Fortgeschrittene E/A-Funktionen
1115
B. 5 Verzeichnisse
1121
B. 6 Attribute von Dateien und Verzeichnissen
1123
B. 7 Links
1125
B. 8 Prozess und Prozessverwaltungsfunktionen
1126
B. 9 Signale – Das neue Signalkonzept
1127
B. 10 Interprozesskommunikationen
1130
B. 11 Sys-V-Interprozesskommnunikationen
1131
B. 12 Threadprogrammierung
1133
B. 13 Netzwerkprogrammierung
1136
B. 14 MySQL C-API
1142
B. 15 PostgreSQL C-API
1147
B. 16 Weitere Funktionsreferenzen auf der Buch-CD
1150
C Linux-Unix-Kommandoreferenz
1152
C. 1 Dateiorientierte Kommandos
1152
C. 2 Verzeichnisorientierte Kommandos
1169
C. 3 Verwaltung von Benutzern und Gruppe
1170
C. 4 Programm- und Prozessverwaltung
1174
C. 5 Speicherplatzinformationen
1180
C. 6 Dateisystem-Kommandos
1181
C. 7 Archivierung und Backup
1191
C. 8 Systeminformationen
1203
C. 9 System-Kommandos
1204
C. 10 Druckeradministration
1206
C. 11 Netzwerkbefehle
1206
C. 12 Benutzerkommunikation
1217
C. 13 Bildschirm- und Terminalkommandos
1218
C. 14 Online-Hilfen
1220
C. 15 Alles rund um PostScript-Kommandos
1222
C. 16 Gemischte Kommandos
1222
D Inhalt der Buch-CD
1224
Index
1226
A
1226
B
1227
C
1227
D
1228
E
1229
F
1229
G
1230
H
1233
I
1233
J
1234
K
1234
L
1236
M
1237
N
1239
O
1240
P
1240
Q
1242
R
1242
S
1243
T
1246
U
1247
V
1248
W X
1248
Y
1248
Z
1248
Mehr eBooks vom gleichen Verlag
OpenOffice.org 3 - Einstieg und Umstieg., von: Thomas Krumbein, Preis: 24,90 EUR
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion

















