HUDU

C und Linux

eBook
€ 23,99
Print-Ausgabe € 29,90
 
pdf eBook
Sofort lieferbar (Download)
Mai 2010

Beschreibung

Beschreibung

C UND LINUX = DREAM TEAM- Erfahren Sie, wie Sie mit eigenen C-Programmen die Möglichkeiten von Linux ausnutzen können.- Nutzen Sie die praktischen Lösungen für häufig auftauchende Aufgabenstellungen.- Viele kleine Beispiele und zwei umfangreiche Beispielprojekte geben Ihnen Anregungen für eigene Programme.- Im Internet: Die Quelltexte zum Buch, Tools und weiterführende InformationenWer Erfahrungen in der C-Programmierung hat, kann die vielen Möglichkeiten von Linux kennen lernen und ausschöpfen. Dieses Buch zeigt Ihnen wie und enthält praktische Lösungen für häufig auftauchende Aufgabenstellungen. Als Grundlage wird zunächst der Umgang mit wichtigen Werkzeugen erklärt, die in jeder Linux-Distribution enthalten sind: Editor, Compiler, Debugger, "Make" usw. Darauf aufbauend führt der Autor Sie anhand vieler praktischer Beispiele in diese Themen ein:- Zugriff auf Dateien und Verzeichnisse mit C - Programme mit parallel laufenden Prozessen schreiben - USB-Geräte, CD-Laufwerk, Soundkarte und WebCams ansteuern- Programme mit grafischer Benutzeroberfläche erstellen- Direkte Hardware-Zugriffe programmieren- Eigene Hilfe-Seiten erstellen- Die automatische Anpassung auf die eingestellte Landessprache Wie diese Themen in "echten" Software-Projekten zusammenspielen, können Sie an zwei umfangreichen Beispielprojekten nachverfolgen. Die 4. Auflage wurde vollständig überarbeitet. Neu aufgenommen wurden Abschnitte zu den Entwicklungsumgebungen KDevelop und Eclipse, zur Kommunikation mit USB-Geräten, zu Broadcast und Multicast und zu Universal Plug And Play (UPnP).

Inhaltsverzeichnis

1;Inhaltsverzeichnis;6 2;Vorwort;12 3;1 Einführung;14 3.1;1.1 Warum gerade C?;14 3.2;1.2 Bevor es losgeht . . .;15 3.2.1;1.2.1 Paketverwaltung unter SuSE-Linux;15 3.2.2;1.2.2 Paketinstallation bei Ubuntu;17 3.3;1.3 DieWerkzeuge;19 3.3.1;1.3.1 Der Editor die Qual der Wahl;19 3.3.2;1.3.2 Der GNU C-Compiler gcc;21 3.3.3;1.3.3 Ablaufsteuerung mit GNU make;21 3.3.4;1.3.4 Für die Fehlersuche: Die Debugger;23 3.3.5;1.3.5 Integrierte Entwicklungsumgebungen;24 3.4;1.4 Der Umgang mit Compiler, Debugger und make anhand von Beispielen;27 3.4.1;1.4.1 Primzahlen berechnen;27 3.4.2;1.4.2 Fehlersuche mit dem gcc;29 3.4.3;1.4.3 Fehlersuche mit dem GNU Debugger;30 3.4.4;1.4.4 Funktionsbibliotheken verwenden;32 3.4.5;1.4.5 Quelltexte aufteilen;34 3.5;1.5 Weiterführende Informationen;38 3.5.1;1.5.1 Die Unix-Online-Hilfen man,xman und tkman;39 3.5.2;1.5.2 Ein Blick hinter die Kulissen: Die Include-Dateien;41 4;2 Arbeiten mit einer Entwicklungsumgebung;44 4.1;2.1 Anjuta;44 4.1.1;2.1.1 Ein neues Projekt anlegen;44 4.1.2;2.1.2 Eingabe der Quelltexte;46 4.1.3;2.1.3 Kompilieren und Starten des Beispiels;48 4.2;2.2 KDevelop;49 4.3;2.3 Eclipse + C Development Tooling (CDT);52 4.3.1;2.3.1 Plug-ins einbinden;53 4.3.2;2.3.2 Ein neues Projekt anlegen;53 5;3 Kommandozeilenprogramme;56 5.1;3.1 Parameter und Rückgabewert der Funktion main();56 5.1.1;3.1.1 Die Bedeutung des Rückgabewertes von main();57 5.1.2;3.1.2 Die Variablen argc und argv;57 5.1.3;3.1.3 Auswerten der Kommandozeilenparameter;58 5.1.4;3.1.4 Achtung: Platzhalter!;60 5.2;3.2 Konventionen für Kommandozeilenprogramme;61 5.2.1;3.2.1 Ein Muss: Die Hilfe-Option;61 5.2.2;3.2.2 Fehlermeldungen;63 5.2.3;3.2.3 Eigene Manpages erstellen;64 5.3;3.3 Programme mehrsprachig auslegen;66 5.4;3.4 Ausgabesteuerung im Terminal-Fenster;73 5.4.1;3.4.1 ANSI-Steuersequenzen;73 5.4.2;3.4.2 Die ncurses-Bibliothek;74 6;4 Dateien und Verzeichnisse;80 6.1;4.1 Die Arbeit mit Dateien;80 6.1.1;4.1.1 Gepufferte Ein-/Ausgabe;80 6.1.2;4.1.2 stdin, stdout und stderr;81
6.1.3;4.1.3 Dateien öffnen und schließen;82 6.1.4;4.1.4 Lesen aus und Schreiben in Dateien;83 6.1.5;4.1.5 Ein Beispiel: Zeilen nummerieren;87 6.2;4.2 Eigenschaften von Dateien oder Verzeichnissen auswerten;88 6.3;4.3 Verzeichnisse einlesen;90 7;5 Interprozesskommunikation;92 7.1;5.1 Prozessverwaltung unter Linux;92 7.2;5.2 Neue Prozesse starten;93 7.2.1;5.2.1 Shell-Programme aufrufen mit system();93 7.2.2;5.2.2 Die Funktionen der exec-Familie;94 7.2.3;5.2.3 Einen Kind-Prozess erzeugen mit fork();95 7.2.4;5.2.4 Warteschleifen;98 7.3;5.3 Signale;99 7.3.1;5.3.1 DieWeckfunktion alarm();100 7.3.2;5.3.2 Einen Signal-Handler einrichten;101 7.3.3;5.3.3 Auf die Beendigung eines Kind-Prozesses warten;102 7.3.4;5.3.4 Signale setzen mit kill();103 7.4;5.4 Datenaustausch zwischen Prozessen;104 7.4.1;5.4.1 Pipes;104 7.4.2;5.4.2 FIFOs;108 7.4.3;5.4.3 SharedMemory;110 7.5;5.5 Alternative Verfahren zur Erzeugung von Prozessen;113 7.5.1;5.5.1 popen() und pclose();113 7.5.2;5.5.2 Die fork()-Alternative clone();114 7.5.3;5.5.3 POSIX-Threads;116 8;6 Devices das Tor zur Hardware;120 8.1;6.1 Das Device-Konzept von Linux;120 8.1.1;6.1.1 Devices öffnen und schließen;121 8.1.2;6.1.2 Ungepuffertes Lesen und Schreiben;122 8.1.3;6.1.3 Devices steuern mit ioctl();123 8.2;6.2 Das CD-ROM-Laufwerk;124 8.2.1;6.2.1 Die CD auswerfen;124 8.2.2;6.2.2 Fähigkeiten des Laufwerks auslesen;125 8.2.3;6.2.3 Audio-CDs abspielen;127 8.3;6.3 Ansteuerung einer Soundkarte;134 8.3.1;6.3.1 OSS, ALSA und ESOUND;135 8.3.2;6.3.2 Der Mixer;135 8.3.3;6.3.3 Audiodaten aufnehmen und wiedergeben;139 8.4;6.4 Video for Linux;143 8.4.1;6.4.1 Eigenschaften des Devices;143 8.4.2;6.4.2 Bilder aufzeichnen;146 8.5;6.5 Die serielle Schnittstelle;155 8.5.1;6.5.1 Terminal-Parameter einstellen;156 8.5.2;6.5.2 Ein kleines Terminalprogramm;158 8.6;6.6 Druckerausgaben;162 8.7;6.7 Der Universal Serial Bus (USB);167 8.7.1;6.7.1 Ansteuerung von USB-Geräten anhand eines Beispiels;169 9;7 Netzwerkprogrammierung;176 9.1;7.1 Einführung;177 9.1.1;
7.1.1 Begriffe;177 9.1.2;7.1.2 Vorbereitung;179 9.1.3;7.1.3 Das Client-Server-Prinzip;182 9.1.4;7.1.4 Sockets;183 9.2;7.2 Der TCP/IP-Client;184 9.2.1;7.2.1 Aufbau einer Verbindung;184 9.2.2;7.2.2 Ein Universal-Client;186 9.2.3;7.2.3 Rechnernamen in IP-Adressen umwandeln;189 9.3;7.3 Server-Programme;191 9.3.1;7.3.1 Die Funktionsweise eines Servers;191 9.3.2;7.3.2 Ein interaktiver TCP/IP-Server;193 9.3.3;7.3.3 Ein kleiner Webserver;197 9.4;7.4 Das User Datagram Protocol (UDP);204 9.4.1;7.4.1 UDP-Nachrichten senden;204 9.4.2;7.4.2 Der UDP-Server;207 9.4.3;7.4.3 Pakete an alle Teilnehmer senden: Broadcast;210 9.4.4;7.4.4 Multicast-Sockets;212 9.4.5;7.4.5 UPnP Universal Plug And Play;213 9.5;7.5 Noch einWort zur Sicherheit;217 10;8 Grafische Benutzeroberflächen;218 10.1;8.1 Die grafische Oberfläche X11;218 10.2;8.2 Das Toolkit GTK+;219 10.2.1;8.2.1 GTK 1.2 versus GTK 2.0;219 10.2.2;8.2.2 GTK-Programme übersetzen;220 10.2.3;8.2.3 Ein erstes Beispiel;221 10.2.4;8.2.4 Das Callback-Prinzip;223 10.2.5;8.2.5 Schaltflächen (Buttons);226 10.2.6;8.2.6 Hinweistexte (Tipps);229 10.2.7;8.2.7 Widgets anordnen;229 10.2.8;8.2.8 Text-Labels;233 10.2.9;8.2.9 Dialogfenster;234 10.2.10;8.2.10 Auswahlfelder;237 10.2.11;8.2.11 Eingabefelder für Text und Zahlen;241 10.2.12;8.2.12 Menüs;246 10.2.13;8.2.13 Pixmap-Grafiken darstellen;251 10.2.14;8.2.14 Zeichenflächen;257 10.2.15;8.2.15 Zeichenfläche mit Rollbalken;263 10.2.16;8.2.16 Dateiauswahlfenster;265 10.2.17;8.2.17 Umlaute und Sonderzeichen;268 10.2.18;8.2.18 Wie geht es weiter?;268 10.3;8.3 Grafik ohne X11 mit der SVGALIB;269 10.3.1;8.3.1 Besonderheiten beim Arbeiten mit der libvga;269 10.3.2;8.3.2 Ein erstes Beispiel;270 10.3.3;8.3.3 Mit Perspektive: 3D-Funktionen zeichnen;273 10.3.4;8.3.4 Ein kleines Malprogramm;275 10.3.5;8.3.5 Erweiterte Funktionen mit der libvgagl;279 10.3.6;8.3.6 Weitere Informationsquellen;281 11;9 Hardware-Programmierung;284 11.1;9.1 Hardware-nahe Programme schreiben;284 11.1.1;9.1.1 Eigene Programme mit root-Rech
ten ausstatten;285 11.1.2;9.1.2 Zugriff auf I/O-Ports freischalten;285 11.1.3;9.1.3 Zugriff auf die I/O-Ports;286 11.2;9.2 Ansteuerung des Parallelports;287 11.2.1;9.2.1 Beschreibung des Parallelports;287 11.2.2;9.2.2 Die Adresse des Parallelports suchen;288 11.2.3;9.2.3 Ein Beispiel: LED-Lauflicht;289 11.3;9.3 Modem-Steuerleitungen abfragen;292 12;10 Beispielprojekte;296 12.1;10.1 WebCam: Video-Übertragung per HTTP;296 12.1.1;10.1.1 Wie die Bilder laufen lernen;297 12.1.2;10.1.2 Strukturierung der Quelltexte;297 12.1.3;10.1.3 Die HTTP-Authentifizierung;311 12.2;10.2 Telefonbuch mit automatischer Anwahl;313 12.2.1;10.2.1 Ziel des Projektes;313 12.2.2;10.2.2 Strukturierung des Projektes;314 12.2.3;10.2.3 Das Hauptprogramm;314 12.2.4;10.2.4 Funktionen zur Ansteuerung des Modems;317 12.2.5;10.2.5 Die Benutzerschnittstelle;320 12.2.6;10.2.6 To Do;325 13;Anhang;328 13.1;A1 Daten zum Buch im Internet;328 13.2;A2 Das X11-Toolkit XView;328 13.3;A3 Aufbau einer WAV-Audiodatei;329 13.4;A4 Aufbau einer AU-Audiodatei;330 13.5;A5 Linux-Programmierung unterWindows: Cygwin;330 14;Literaturverzeichnis;332 15;Stichwortverzeichnis;334


EAN: 9783446424159
Untertitel: Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen. Dateigröße in MByte: 4.
Verlag: Hanser, Carl
Erscheinungsdatum: Mai 2010
Format: pdf eBook
Kopierschutz: Wasserzeichen
Es gibt zu diesem Artikel noch keine Bewertungen.Kundenbewertung schreiben