Zurück

In den Warenkorb

Empfehlung per E-Mail versenden

Probeexemplar anfordern

Gerne schicken wir Ihnen ein Probeexemplar an die angegeben Adresse.
Systemnahe Programmierung mit C und Linux

Systemnahe Programmierung mit C und Linux

Das umfassende Handbuch zur Linux-Anwendungsprogrammierung

vonWolf, Jürgen | Krooß, René
Deutsch, Erscheinungstermin Februar 2024
lieferbar

Buch (gebunden)

59,90 €
(inkl. MwSt.)

eBook (EPUB ohne DRM)

59,90 €
(inkl. MwSt.)
Alles zur systemnahen Anwendungsprogrammierung: von den E/A-Funktionen, dem Zugriff auf Systeminformationen über Prozesse, Signale, Interprozesskommunikation und Threads bis hin zu Netzwerkprogrammierung, Datenbanken und GUIs. Für alle, die topaktuelle Programme schreiben wollen und alte Software warten oder...

Informationen zum Titel

978-3-8362-9748-6
Bonn
Februar 2024
2024
5
5. Auflage
Buch (gebunden)
2298 g
1386
204 mm x 246 mm x 65 mm
Color of cover: Black, Color of cover: Blue, Color of cover: Purple, Color of cover:, Color of cover: White, Bonn
Deutsch
Netzwerkprogrammierung, Linux, Programmier- und Skriptsprachen, allgemein
  Materialien zum Buch ... 23   1.  Einführung ... 25        1.1 ... Anforderungen an den Leser ... 25        1.2 ... Anforderungen an das Betriebssystem ... 26        1.3 ... UNIX, der Vorgänger von Linux ... 27        1.4 ... Die Entwicklung von Linux ... 29        1.5 ... Der Compiler GCC -- eine kurze Einführung ... 31        1.6 ... POSIX, X/OPEN und ANSI C ... 37        1.7 ... Übersicht zu diesem Buch ... 40        1.8 ... Schreibkonventionen ... 42        1.9 ... Weitere Hilfen ... 43   2.  E/A-Funktionen ... 45        2.1 ... Elementare E/A-Funktionen ... 45        2.2 ... Filedeskriptoren ... 47        2.3 ... Funktionen, die einen Filedeskriptor verwenden ... 50        2.4 ... Standard-E/A-Funktionen ... 99        2.5 ... Die Arbeit mit Verzeichnissen ... 113        2.6 ... Fehlerbehandlung ... 134        2.7 ... Ausblick ... 137   3.  Attribute von Dateien und Verzeichnissen abfragen und ändern ... 139        3.1 ... Die Struktur stat ... 139   4.  Zugriff auf Systeminformationen ... 157        4.1 ... Informationen aus dem /proc-Verzeichnis herausziehen ... 157        4.2 ... Hardware-/Systeminformationen ermitteln ... 160        4.3 ... Prozessinformationen auslesen ... 166        4.4 ... Kernel-Informationen in /proc ... 171        4.5 ... Verschiedene Dateisysteme unter Linux verwalten ... 180        4.6 ... Weiterführendes ... 181   5.  Devices -- eine einfache Verbindung zur Hardware ... 183        5.1 ... Die Gerätedateitypen ... 183        5.2 ... Die Gerätedateinummern ... 185        5.3 ... Zugriff auf die Gerätedateien ... 186        5.4 ... Gerätenamen ... 188        5.5 ... Spezielle Gerätedateien ... 190        5.6 ... Gerätedateien in der Praxis einsetzen ... 191   6.  System- und Benutzerdateien ... 227        6.1 ... Die Datei /etc/passwd ... 227        6.2 ... Die Datei /etc/shadow ... 234        6.3 ... Die Datei /etc/group ... 239        6.4 ... uname -- Informationen zum lokalen System erfragen ... 243        6.5 ... Das Verzeichnis /etc/skel und Network Information Service (NIS) ... 245        6.6 ... Dateien für Netzwerkinformationen ... 246   7.  Prozesse, Dämonen und Zombies ... 247        7.1 ... Was ist ein Prozess? ... 247        7.2 ... Prozesskomponente ... 248        7.3 ... Prozesse überwachen mit ps, top und kpm ... 258        7.4 ... Der Lebenszyklus eines Prozesses ... 261        7.5 ... Umgebungsvariablen eines Prozesses ... 263        7.6 ... Ressourcenlimits eines Prozesses ... 271        7.7 ... Prozesserkennung ... 275        7.8 ... Erzeugung von neuen Prozessen mit fork() ... 277        7.9 ... Warten auf einen anderen Prozess ... 288        7.10 ... Die exec-Familie ... 296        7.11 ... Kommandoaufrufe aus dem Programm -- system() ... 302        7.12 ... Dämonprozesse ... 304        7.13 ... Mehr über die Ausführung von Prozessen ... 315        7.14 ... Zusammenfassung und Ausblick ... 330   8.  Signale ... 331        8.1 ... Grundlagen zu den Signalen ... 331        8.2 ... Das neue Signalkonzept ab Kernel 2.6.18 ... 338        8.3 ... Die Signalmenge initialisieren ... 339        8.4 ... Elemente zu der Signalmenge hinzufügen oder aus ihr entfernen ... 339        8.5 ... Signale einrichten und abfragen ... 340        8.6 ... Signale an andere Prozesse senden mit kill() ... 347        8.7 ... Eine Zeitschaltuhr einrichten mit alarm() ... 348        8.8 ... Prozesse stoppen, bis ein Signal eintritt, mit pause() ... 349        8.9 ... Prozesse für eine bestimmte Zeit stoppen mit sleep() und usleep() ... 349        8.10 ... Die Signalmaske erfragen oder ändern mit sigprocmask() ... 350        8.11 ... Einen Prozess während einer Änderung der Signalmaske stoppen mit sigsuspend() ... 351        8.12 ... Prozesse synchronisieren ... 351   9.  IPC -- Interprozesskommunikation ... 355        9.1 ... Unterschiedliche Interprozesskommunikations-Techniken im Überblick ... 356        9.2 ... Gründe für IPC ... 364        9.3 ... Pipes ... 365        9.4 ... System-V-Interprozesskommunikation ... 408        9.5 ... Semaphore ... 410        9.6 ... Message Queues ... 419        9.7 ... Shared Memory ... 432 10.  Threads ... 443        10.1 ... Unterschiede zwischen Threads und Prozessen ... 443        10.2 ... Thread-Bibliotheken ... 444        10.3 ... Kernel- und User-Threads ... 445        10.4 ... Scheduling und Zustände von Threads ... 445        10.5 ... Die grundlegenden Funktionen der Thread-Programmierung ... 447        10.6 ... Die Attribute von Threads und das Scheduling ... 459        10.7 ... Threads synchronisieren ... 465        10.8 ... Threads abbrechen (canceln) ... 493        10.9 ... Erzeugen von threadspezifischen Daten (TSD) ... 498        10.10 ... Mit pthread_once() einen Codeabschnitt auf einmal ausführen ... 501        10.11 ... Thread-safe-Funktionen (thread-sichere Funktionen) ... 504        10.12 ... Threads und Signale ... 505        10.13 ... Zusammenfassung und Ausblick ... 510 11.  Netzwerkprogrammierung ... 513        11.1 ... Einführung ... 513        11.2 ... Aufbau von Netzwerken ... 514        11.3 ... TCP/IP -- Aufbau und Struktur ... 520        11.4 ... TCP-Socket ... 524        11.5 ... Das Kommunikationsmodell der Sockets ... 525        11.6 ... Grundlegende Funktionen zum Zugriff auf die Socket-Schnittstelle ... 525        11.7 ... Aufbau eines Clientprogramms ... 535        11.8 ... Aufbau des Serverprogramms ... 540        11.9 ... IP-Adressen konvertieren, manipulieren und extrahieren ... 545        11.10 ... Namen und IP-Adressen ineinander umwandeln ... 552        11.11 ... Pufferung bei Netzwerk-Sockets ... 562        11.12 ... Standard-E/A-Funktionen verwenden ... 563        11.13 ... Parallele Server ... 565        11.14 ... Synchrones Multiplexing mit select() ... 582        11.15 ... POSIX-Threads und Netzwerkprogrammierung ... 604        11.16 ... Optionen für Sockets setzen und abfragen ... 610        11.17 ... Das UDP-Protokoll (User Datagram Protocol) ... 615        11.18 ... Unix Domain Sockets ... 624        11.19 ... Multicast-Socket ... 630        11.20 ... Nicht blockierende I/O-Sockets ... 639        11.21 ... Streams, TLI, Raw Socket und XTI ... 642        11.22 ... IPv4 und IPv6 ... 644        11.23 ... Netzwerksoftware nach IPv6 portieren ... 646        11.24 ... Sicherheit und Verschlüsselung ... 647 12.  MySQL und PostgreSQL ... 649        12.1 ... Relationale Datenbanksysteme ... 649        12.2 ... Der relationale Datenbankserver ... 653        12.3 ... SQL-Server im Überblick ... 653        12.4 ... Die MySQL-Datenbank ... 654        12.5 ... Die MySQL-C-API ... 684        12.6 ... Beispiel: Ein einfaches Newssystem ... 728        12.7 ... Neue SQL-Funktionen für die Shell -- MySQL erweitern ... 759        12.8 ... MySQL-Funktionen mit der UDF-Schnittstelle entwerfen ... 760        12.9 ... PostgreSQL: Ein objektrelationales Datenbankverwaltungssystem ... 771 13.  Terminal-E/A und Benutzerschnittstellen für die Konsole ... 813        13.1 ... termios ... 813        13.2 ... Terminalinformationen in terminfo ... 837        13.3 ... Halbgrafik erstellen mit ncurses ... 847 14.  GTK+ ... 891        14.1 ... Was ist GTK+? ... 891        14.2 ... GTK+-Anwendungen übersetzen ... 896        14.3 ... Eine Einführung in die GLib-Bibliothek ... 897        14.4 ... Grundlagen der GTK+-Programmierung ... 923        14.5 ... Fenster anlegen mit GtkWindow ... 935        14.6 ... Anzeigeelemente ... 944        14.7 ... Behälter für Widgets ... 953        14.8 ... Buttons und Toggled-Buttons ... 967        14.9 ... Dateneingaben auswerten ... 977        14.10 ... Menüs und Toolbars erstellen ... 989        14.11 ... Mehrzeiligen Text erstellen ... 1009        14.12 ... Auswählen von Widgets (Selection) ... 1023        14.13 ... Events auswerten ... 1033        14.14 ... Weitere Widget- und GTK+-Elemente im Überblick ... 1039 15.  Übersicht über weitere beliebte GUI-Bibliotheken ... 1043        15.1 ... gtkmm -- GTK+ für C++ ... 1043        15.2 ... wxWidgets ... 1047        15.3 ... FLTK ... 1051        15.4 ... Qt ... 1053        15.5 ... Die niedrige Ebene: X-Window-Programmierung ... 1056        15.6 ... Multimediabibliotheken ... 1057 16.  Werkzeuge für Programmierer ... 1065        16.1 ... Der Compiler GCC ... 1065        16.2 ... make ... 1074        16.3 ... Eigene Bibliotheken erstellen ... 1091        16.4 ... RPM-Pakete ... 1101        16.5 ... RCS und CVS ... 1114        16.6 ... Laufzeitmessung von Programmen ... 1143        16.7 ... Debuggen mit GDB und DDD ... 1151        16.8 ... STRACE -- Systemaufrufe verfolgen ... 1164        16.9 ... Memory Leaks und unerlaubte Speicherzugriffe ... 1167        16.10 ... Ausblick ... 1175   Anhang ... 1177        A ... Sicherheit unter Linux ... 1179        B ... Funktionsreferenz ... 1201        C ... Linux/UNIX-Kommandoreferenz ... 1283   Index ... 1365
Alles zur systemnahen Anwendungsprogrammierung: von den E/A-Funktionen, dem Zugriff auf Systeminformationen über Prozesse, Signale, Interprozesskommunikation und Threads bis hin zu Netzwerkprogrammierung, Datenbanken und GUIs. Für alle, die topaktuelle Programme schreiben wollen und alte Software warten oder portieren müssen. Alle Beispiele sind auch auf dem Raspberry Pi ausführbar. Solide C- und Linux-Kenntnisse werden vorausgesetzt. Aus dem Inhalt: E/A-Funktionen Attribute von Dateien und Verzeichnissen Zugriff auf Systeminformationen Devices - eine einfache Verbindung zur Hardware System- und Benutzerdateien Dämonen, Zombies und Prozesse Signale IPC - Interprozesskommunikation Threads Netzwerkprogrammierung Datenbanken (MySQL, PostgreSQL) GUIs mit GTK+ Werkzeuge für Programmierer
René Krooß ist Diplom-Informatiker, begeisterter Programmierer und Experte für Prozessorstrukturen, Betriebssysteme, Hardware-Programmierung und Algorithmen. Sein Hobby: die Videobearbeitung mit professioneller Software wie Magix Video Deluxe. Sein Ziel: Einsteigern und Fortgeschrittenen einen einfachen Zugang zu C zu ermöglichen.
Kundenmitteilung
EU-Datenschutzgrundverordnung

Die DSGVO stärkt die Datenschutzrechte europaweit für uns alle. Bei vub haben wir aus diesem Anlass unsere Datenschutzerklärung grundlegend verändert:

  • Wir stellen noch übersichtlicher dar, wie und wofür wir personenbezogene Daten verarbeiten (wenn überhaupt, denn das Verwerten Ihrer persönlichen Daten ist überhaupt nicht unser Geschäft!).
  • Wir informieren in unserer neuen Datenschutzerklärung über die Kundenrechte.
  • Wir haben die Datenschutzerklärung übersichtlicher gestaltet.
  • Ab dem 25. Mai 2018 können Sie in Ihrem Kundenkonto im Menü unter „mein vub - Einstellungen“ den gewünschten Datenschutz selbst einstellen.

Bei Fragen wenden Sie sich bitte jederzeit an unseren vub-Kundenservice und Ihre bekannten Ansprechpartner unter premiumservice@vub.de.

Bestätigung