Neukunde?

Hier starten

Erweiterte Suche
Linux-UNIX-Programmierung

Linux-UNIX-Programmierung

Das umfassende Handbuch. Einstieg, Praxisbeispiele, Referenzen. System-, Netzwerk- und Shellprogrammierung. Datenbanken, GUI-Bibliotheken, Werkzeuge, Sicherheit. Inkl. Openbooks zu Linux und C

Bücher
EUR 49,90
auf Merkliste

versandkostenfrei

Voraussichtlich versandfertig innerhalb 1-2 Wochen

bis zu 5fache Punkte

Wird oft zusammen gekauft

EUR 49,90
EUR 48,00 EUR 45,60

Zusammen jetzt für
95,50

jetzt beide kaufen

Kunden, die Linux-UNIX-Programmierung gekauft haben, kauften auch:

Artikeldetails zu Linux-UNIX-Programmierung

Untertitel Das umfassende Handbuch. Einstieg, Praxisbeispiele, Referenzen. System-, Netzwerk- und Shellprogrammierung. Datenbanken, GUI-Bibliotheken, Werkzeuge, Sicherheit. Inkl. Openbooks zu Linux und C

Abbildungsvermerk:3., aktualis. und erw. Abbildungen 24,5 cm

  • bol.de-Verkaufsrang23.277
  • ISBN-103-8362-1366-4
  • EAN9783836213660
  • Label Galileo Press
  • Seiten1247
  • VeröffentlichtMärz 2009
  • Medium Bücher
  • ReiheGalileo Computing

Rezensionen der Redaktion zu Linux-UNIX-Programmierung

"Ein anspruchvolles und absolut professionelles Buch!" (PC WELT 2009)

Kurzbeschreibung zu Linux-UNIX-Programmierung

Dieses Buch bietet einen umfassenden Einblick in die Systemprogrammierung unter Linux und Unix. Es ist für Leser mit Betriebssystem-Kenntnissen und C-Wissen geeignet.
Aus dem Inhalt: Umfassende Einführung, E/A-Funktionen, Attribute von Dateien und Verzeichnissen, Zugriff auf Systeminformationen, Prozesse und Dämonprozesse, Umgebungsvariablen eines Prozesses, Signale, Interprozesskommunikation, Threads, Netzwerkprogrammierung, MySQL, Terminal E/A und Benutzerschnittstellen für die Konsole, Sicherheit, Systeminformationen, Devices, GTK+.
Neu in der 3. Auflage: ein Kapitel zur Shell-Programmierung und eine Kommandoreferenz.

Inhaltsverzeichnis zu Linux-UNIX-Programmierung

Vorwort des Autors 23
Vorwort 2. Auflage 23
Vorwort 3. Auflage 24
Danksagung 24


Vorwort der Fachgutachter 27


1 Einführung 29
1.1 Anforderung an den Leser 29
1.2 Anforderung an das Betriebssystem 30
1.3 Von UNIX 30
1.4 zu Linux 32
1.5 Der Compiler GCC - eine kurze Einführung 33
1.6 POSIX, X/OPEN und ANSI C 37
1.7 Übersicht zum Buch 39
1.8 Schreibkonventionen 41
1.9 Notationsstil 42
1.10 Weitere Hilfen 42


2 E/A-Funktionen 43
2.1 Elementare E/A-Funktionen 43
2.2 Filedeskriptor 44
2.3 Funktionen, die den Filedeskriptor verwenden 46
2.4 Standard-E/A-Funktionen 84
2.5 Mit Verzeichnissen arbeiten 94
2.6 Fehlerbehandlung 112
2.7 Ausblick 114


3 Attribute von Dateien und Verzeichnissen 115
3.1 Struktur stat 115


4 Zugriff auf Systeminformationen 129
4.1 Informationen aus dem /proc-Verzeichnis herausziehen 129
4.2 Hardware-/Systeminformationen ermitteln 131
4.3 Prozessinformationen 135
4.4 Kernel-Informationen 139
4.5 Filesysteme 146
4.6 Weiterführendes 146


5 Devices - eine einfache Verbindung zur Hardware 149
5.1 Die Gerätedateitypen 149
5.2 Die Gerätedateinummern 150
5.3 Zugriff auf die Gerätedateien 151
5.4 Gerätenamen 152
5.5 Spezielle Gerätedateien 153
5.6 Gerätedateien in der Praxis einsetzen 154


6 System- und Benutzerdateien 169
6.1 Die Datei /etc/passwd 169
6.2 Die Datei /etc/shadow 174
6.3 Die Datei /etc/group 179
6.4 uname - Informationen zum lokalen System erfragen 183
6.5 Das Verzeichnis /etc/skel und Network Information Service (NIS) 184
6.6 Dateien für Netzwerkinformationen 184


7 Dämonen, Zombies und Prozesse 187
7.1 Was ist ein Prozess? 187
7.2 Prozesskomponente 188
7.3 Prozesse überwachen - ps, top, kpm 196
7.4 Lebenszyklus eines Prozesses 198
7.5 Umgebungsvariablen eines Prozesses 200
7.6 Ressourcenlimits eines Prozesses 206
7.7 Prozesserkennung 209
7.8 Erzeugung von Prozessen - fork() 211
7.9 Warten auf einen Prozess 220
7.10 Die exec-Familie 226
7.11 Kommandoaufrufe aus dem Programm - system() 231
7.12 Dämonprozesse 232
7.13 Rund um die Ausführung von Prozessen 242
7.14 Zusammenfassung und Ausblick 254


8 Signale 255
8.1 Grundlage zu den Signalen 255
8.2 Das neue Signalkonzept 260
8.3 Signalmenge initialisieren 260
8.4 Signalmenge hinzufügen oder löschen 261
8.5 Signale einrichten oder erfragen 261
8.6 Signal an den eigenen Prozess senden - raise() 267
8.7 Signale an andere Prozesse senden - kill() 267
8.8 Zeitschaltuhr einrichten - alarm() 268
8.9 Prozesse stoppen, bis ein Signal eintritt - pause() 268
8.10 Prozesse für eine bestimmte Zeit stoppen - sleep() und usleep() 269
8.11 Signalmaske erfragen oder ändern - sigprocmask() 269
8.12 Prozess während einer Änderung der Signalmaske stoppen - sigsuspend() 270
8.13 Prozesse synchronisieren 271


9 IPC - Interprozesskommunikation 275
9.1 Unterschiedliche Interprozesskommunikations-Techniken im Überblick 276
9.2 Gründe für IPC 282
9.3 Pipes 283
9.4 System-V-Interprozesskommunikation 318
9.5 Semaphore 321
9.6 Message Queues 328
9.7 Shared Memory 339


10 Threads 349
10.1 Unterschiede zwischen Threads und Prozessen 349
10.2 Thread-Bibliotheken 350
10.3 Kernel- und User-Threads 351
10.4 Scheduling und Zustände von Threads 351
10.5 Die grundlegenden Funktionen zur Thread-Programmierung 352
10.6 Die Attribute von Threads und das Scheduling 362
10.7 Threads synchronisieren 367
10.8 Threads abbrechen (canceln) 391
10.9 Erzeugen von Thread-spezifischen Daten (TSD-Data) 395
10.10 pthread_once - Codeabschnitt einmal ausführen 398
10.11 Thread-safe (thread-sichere Funktionen) 400
10.12 Threads und Signale 401
10.13 Zusammenfassung und Ausblick 405


11 Netzwerkprogrammierung 407
11.1 Einführung 407
11.2 Aufbau von Netzwerken 408
11.3 TCP/IP - Aufbau und Struktur 411
11.4 TCP Socket 414
11.5 Kommunikationsmodell 415
11.6 Grundlegende Funktionen zum Zugriff auf die Socket-Schnittstelle 416
11.7 Aufbau eines Clientprogramms 424
11.8 Aufbau des Serverprogramms 427
11.9 IP-Adressen konvertieren, manipulieren und extrahieren 432
11.10 Namen und IP-Adressen umwandeln 438
11.11 Der Puffer 446
11.12 Standard-E/A-Funktionen verwenden 447
11.13 Parallele Server 448
11.14 Syncrones Multiplexing - select() 462
11.15 POSIX-Threads und Netzwerkprogrammierung 481
11.16 Optionen für Sockets setzen bzw. erfragen 485
11.17 UDP 489
11.18 Unix-Domain-Sockets (IPC) 496
11.19 Multicast-Socket 502
11.20 Nicht blockierende I/O-Sockets 509
11.21 Etwas zu Streams und TLI, Raw Socket, XTI 512
11.22 IPv4 und IPv6 514
11.23 Netzwerksoftware nach IPv6 portieren 515
11.24 Sicherheit und Verschlüsselung 517


12 MySQL und PostgreSQL 519
12.1 Relationales Datenbanksystem 519
12.2 Relationaler Datenbankserver 521
12.3 SQL-Server im Überblick 522
12.4 MySQL 522
12.5 MySQL C-API 546
12.6 Beispiel eines Newssystems mit MySQL 583
12.7 Neue SQL-Funktionen für die Shell - MySQL erweitern 609
12.8 MySQL-Funktionen mit der UDF-Schnittstelle entwerfen 610
12.9 PostgreSQL - objektrelationales Datenbankverwaltungssystem 619


13 Terminal E/A und Benutzerschnittstellen für die Konsole 653
13.1 termios 653
13.2 terminfo 671
13.3 ncurses - Halbgrafik 679


14 GTK+ 715
14.1 Was ist GTK+? 715
14.2 GTK+-Anwendungen übersetzen 719
14.3 Eine Einführung in die Glib-Bibliothek 720
14.4 Grundlagen der GTK+-Programmierung 741
14.5 Fenster - GtkWindow 750
14.6 Anzeige-Elemente 758
14.7 Behälter 765
14.8 Buttons und Toogled-Buttons 777
14.9 Dateneingabe 785
14.10 Menü und Toolbar 795
14.11 Mehrzeiliger Text 812
14.12 Auswählen (Selection) 824
14.13 Events 833
14.14 Weitere Widget- und GTK+-Elemente im Überblick 838


15 Übersicht über weitere beliebte GUIBibliotheken 841
15.1 gtkmm - GTK+ für C++ 841
15.2 wxWidget 845
15.3 FLTK 848
15.4 Qt 849
15.5 Die niedrige Ebene - X-Window-Programmierung 852
15.6 Multimediabibliotheken 852


16 Werkzeuge für Programmierer 859
16.1 Der Compiler gcc 859
16.2 Make 866
16.3 Bibliotheken erstellen 880
16.4 RPM 888
16.5 RCS und CVS 898
16.6 Zeitmessung von Programmen 923
16.7 Debuggen mit gdb und ddd 929
16.8 STRACE - Systemaufrufe verfolgen 939
16.9 Memory Leaks und unerlaubte Speicherzugriffe 942
16.10 Ausblick 948


17 Shellprogrammierung 951
17.1 Was ist eine Shell und was kann sie? 951
17.2 Was sind Shellskripts und wann ist ihr Einsatz sinnvoll? 951
17.3 Wann brauche ich keine Shellskripts? 953
17.4 Verschiedene Shelltypen 953
17.5 Shellskripts ausführen 955
17.6 Vom Shellskript zum Prozess 964
17.7 Datenstrom (Stream) umleiten 965
17.8 Ersatzmuster (Namen-Expansion) zur Suche verwenden 972
17.9 Variablen 976
17.10 Quotings 997
17.11 Kommandozeilenargumente 999
17.12 Kontrollstrukturen 1006
17.13 Terminal-Eingabe und -Ausgabe 1028
17.14 Funktionen 1050
17.15 Signale 1054
17.16 Prozess- und Skriptausführung 1058
17.17 Ein Shellskript bei der Ausführung 1065


A Sicherheit unter Linux 1067
A.1 Viren und Trojaner 1067
A.2 Der Superuser (su) 1068
A.3 Überlaufen von Logfiles 1068
A.4 Zugriffsrechte auf Dateien 1069
A.5 Das SUID-Bit 1069
A.6 Programme ohne Ausführrechte 1071
A.7 Buffer Overflow (Pufferüberlauf) 1071
A.8 Race Condition 1073
A.9 Temporäre Dateien 1074
A.10 chroot 1075
A.11 Umgebungsvariablen 1076
A.12 Zugriffsrechte - häufig gemachte Fehler 1079
A.13 system() und popen() 1079
A.14 Offene Filedeskriptoren 1080
A.15 Core Dump 1082
A.16 SQL Injection 1083
A.17 Filedeskriptor-Überlauf mit select() 1085


B Funktionsreferenz 1087
B.1 ANSI C 1087
B.2 ANSI C99 1105
B.3 Elementare E/A-Funktionen 1112
B.4 Fortgeschrittene E/A-Funktionen 1114
B.5 Verzeichnisse 1120
B.6 Attribute von Dateien und Verzeichnissen 1122
B.7 Links 1124
B.8 Prozess und Prozessverwaltungsfunktionen 1125
B.9 Signale - Das neue Signalkonzept 1126
B.10 Interprozesskommunikationen 1129
B.11 Sys-V-Interprozesskommnunikationen 1130
B.12 Threadprogrammierung 1132
B.13 Netzwerkprogrammierung 1135
B.14 MySQL C-API 1141
B.15 PostgreSQL C-API 1146
B.16 Weitere Funktionsreferenzen auf der Buch-CD 1149


C Linux-Unix-Kommandoreferenz 1151
C.1 Dateiorientierte Kommandos 1151
C.2 Verzeichnisorientierte Kommandos 1168
C.3 Verwaltung von Benutzern und Gruppe 1169
C.4 Programm- und Prozessverwaltung 1173
C.5 Speicherplatzinformationen 1179
C.6 Dateisystem-Kommandos 1180
C.7 Archivierung und Backup 1190
C.8 Systeminformationen 1202
C.9 System-Kommandos 1203
C.10 Druckeradministration 1205
C.11 Netzwerkbefehle 1205
C.12 Benutzerkommunikation 1216
C.13 Bildschirm- und Terminalkommandos 1217
C.14 Online-Hilfen 1219
C.15 Alles rund um PostScript-Kommandos 1221
C.16 Gemischte Kommandos 1221


D Inhalt der Buch-CD 1223

Bewertung unserer Kunden zu Linux-UNIX-Programmierung

Wie ist Ihre Meinung zu „Linux-UNIX-Programmierung”?

Geben Sie die erste Bewertung ab. Jetzt rezensieren und 2 Euro kassieren.

Zuletzt angesehene Artikel

  1. buch

    Die spirituelle Welt

    Michael Winkler

    EUR 24,95
    "Die spirituelle Welt" unbekannt
  2. CD

    Schätzelein

    Horst Schlämmer

    EUR 5,99

Häufig gestellte Fragen

  • Wie viele PAYBACK Punkte kann ich für ein Produkt sammeln?

    Für jeden vollen Euro Warenwert erhalten Sie 1 PAYBACK Punkt.
  • Wo sehe ich, wie viel PAYBACK Punkte ich für ein Produkt sammeln kann?

    Die für ein Produkt zu sammelnden Punkte finden Sie unter dem Warenwert auf der Artikeldetailseite, ebenso im Warenkorb und in der Bestellübersicht.
  • Wie viele Miles & More Prämienmeilen kann ich für dieses Produkt sammeln?

    Die für dieses Produkt zu sammelnden Meilen finden Sie unter dem Warenwert. Bitte beachten Sie, dass die Meilengutschrift erst 30 Tage nach vollständigem Abschluss der Bestellung erfolgt.
  • Wie kann ich bei bol.de bezahlen?

    Wählen Sie im Bestellprozess oder unter "Mein Konto" im Punkt "Zahlungsart" Ihre gewünschte Zahlungsweise aus. Näheres erfahren Sie in unserer Hilfe.

BonusprogrammHilfe

Payback

245 Punkte sammeln

Miles & More

49 Meilen sammeln

16467 Meilen einlösen