Bookbot

René Krooß

    Grundkurs C
    Systemnahe Programmierung mit C und Linux
    Grundkurs C
    • 2024

      Systemnahe Programmierung mit C und Linux

      Das umfassende Handbuch zur Linux-Anwendungsprogrammierung

      • 1386bladzijden
      • 49 uur lezen

      Alles zur systemnahen Anwendungsprogrammierung: von E/A-Funktionen, Systeminformationen über Prozesse, Signale, Interprozesskommunikation und Threads bis hin zu Netzwerkprogrammierung, Datenbanken und GUIs. Ideal für Programmierer, die neue Software entwickeln oder bestehende Anwendungen warten oder portieren möchten. Alle Beispiele sind auf dem Raspberry Pi ausführbar. Vorausgesetzt werden solide C- und Linux-Kenntnisse. Der Inhalt umfasst E/A-Funktionen, Dateiattribute, den Zugriff auf Systeminformationen, Hardwareverbindungen, Prozesse, Signale, Interprozesskommunikation, Threads, Netzwerkprogrammierung und Datenbanken wie MySQL und PostgreSQL. Auch die GUI-Entwicklung mit GTK+ und verschiedene Programmierwerkzeuge werden behandelt. Das Buch bietet eine umfassende Einführung in die Programmierung unter Linux, einschließlich der Entwicklung und Nutzung von Daemonen, der Verwaltung von Prozessen und der Anwendung von Signalen. Zudem werden Techniken zur Interprozesskommunikation, die Verwendung von Threads und die Netzwerkprogrammierung detailliert erläutert. Zusätzlich werden relationale Datenbanksysteme behandelt, sowie Terminal-E/A und Benutzerschnittstellen für die Konsole. Ein Überblick über beliebte GUI-Bibliotheken und nützliche Programmierwerkzeuge rundet das Angebot ab. Der Anhang enthält Informationen zur Sicherheit unter Linux und eine Funktionsreferenz.

      Systemnahe Programmierung mit C und Linux
    • 2024

      Grundkurs C

      C-Programmierung verständlich erklärt. Aktuell zum Standard C23. Ideal fürs Studium

      • 496bladzijden
      • 18 uur lezen

      Die kompakte Einführung in C im praktischen Taschenbuchformat. Das Buch führt Sie übersichtlich in alle Sprachgrundlagen ein, bevor es um fortgeschrittene Themen wie Zeiger oder dynamische Speicherverwaltung geht. Mit dem aktuellen Standard C23, aber auch für ältere Compiler. Viele Codebeispiele und Tabellen sowie eine Funktionsreferenz machen das Buch zu Ihrem nützlichen Begleiter. Zu jedem Kapitel bieten Aufgaben mit kommentierten Lösungen eine Lernkontrolle und laden dazu ein, selbst Hand anzulegen. Ideal als Vorlesungsbegleiter oder zum Auffrischen. Aus dem Inhalt: Erste Schritte in C Verzweigungen und Schleifen Funktionen Präprozessor-Direktiven Arrays und Zeichenketten Zeiger Dynamische Speicherverwaltung Dynamische Datenstrukturen Eingabe- und Ausgabe-Funktionen Aktueller ISO-Standard C23

      Grundkurs C
    • 2020

      Grundkurs C

      C-Programmierung verständlich erklärt. Aktuell zum Standard C18. Ideal fürs Studium

      • 487bladzijden
      • 18 uur lezen

      Die kompakte Einführung in C im praktischen Taschenbuchformat. Das Buch führt Sie übersichtlich in alle Sprachgrundlagen ein, bevor es um fortgeschrittene Themen wie Zeiger oder dynamische Speicherverwaltung geht. Mit dem aktuellen Standard C18, aber auch für ältere Compiler. Viele Codebeispiele und Tabellen sowie eine Funktionsreferenz machen das Buch zu Ihrem nützlichen Begleiter. Zu jedem Kapitel bieten Aufgaben mit kommentierten Lösungen eine Lernkontrolle und laden dazu ein, selbst Hand anzulegen. Ideal als Vorlesungsbegleiter oder zum Auffrischen. Aus dem Inhalt: Erste Schritte in C Verzweigungen und Schleifen Funktionen Präprozessor-Direktiven Arrays und Zeichenketten Zeiger Dynamische Speicherverwaltung Dynamische Datenstrukturen Eingabe- und Ausgabe-Funktionen Aktueller ISO-Standard C18 Inhaltsverzeichnis Vorwort ... 17 1. Einstieg in die Welt von C ... 21 1.1 ... Die Sprache C ... 21 1.2 ... Die C-Standardbibliothek ... 22 1.3 ... Die nötigen Werkzeuge für C ... 26 1.4 ... Übersetzen mit der Entwicklungsumgebung ... 29 1.5 ... Übersetzen mit GCC und Clang ... 33 1.6 ... Listings zum Buch ... 35 1.7 ... Kontrollfragen und Aufgaben im Buch ... 36 2. Erste Schritte in C ... 37 2.1 ... Das erste Programm in C ... 37 2.2 ... Die Funktion printf() ... 40 2.3 ... Zeichensätze in C ... 42 2.4 ... Symbole in C ... 45 2.5 ... Kommentare ... 50 2.6 ... Kontrollfragen und Aufgaben ... 52 3. Basisdatentypen in C ... 55 3.1 ... Variablen ... 55 3.2 ... Deklaration und Definition ... 56 3.3 ... Initialisierung und Zuweisung von Werten ... 58 3.4 ... Datentypen für Ganzzahlen ... 59 3.5 ... Datentypen für Zeichen ... 65 3.6 ... Datentypen für Fließkommazahlen ... 68 3.7 ... Boolescher Datentyp ... 72 3.8 ... Speicherbedarf mit sizeof ermitteln ... 73 3.9 ... Wertebereiche der Datentypen ermitteln ... 75 3.10 ... Konstanten erstellen ... 81 3.11 ... Lebensdauer und Sichtbarkeit von Variablen ... 82 3.12 ... void -- ein unvollständiger Typ ... 84 3.13 ... Kontrollfragen und Aufgaben ... 84 4. Rechnen mit C und Operatoren ... 85 4.1 ... Werte formatiert einlesen mit scanf() ... 85 4.2 ... Operatoren ... 89 4.3 ... Arithmetische Operatoren ... 93 4.4 ... Inkrement- und Dekrementoperator ... 95 4.5 ... Bitoperatoren ... 98 4.6 ... Implizite Typumwandlung ... 102 4.7 ... Explizite Typumwandlung ... 106 4.8 ... Mathematische Funktionen in C ... 107 4.9 ... Kontrollfragen und Aufgaben ... 112 5. Bedingte Anweisung und Verzweigung ... 115 5.1 ... Bedingte Anweisungen ... 115 5.2 ... Die alternative Verzweigung ... 121 5.3 ... Der Bedingungsoperator ?: ... 124 5.4 ... Die mehrfache Verzweigung mit if und else if ... 125 5.5 ... Mehrfache Verzweigung mit switch ... 130 5.6 ... Logische Verknüpfungen ... 136 5.7 ... Kontrollfragen und Aufgaben ... 143 6. Schleifen -- Programmteile wiederholen ... 147 6.1 ... Die Zählschleife -- for ... 147 6.2 ... Die kopfgesteuerte while-Schleife ... 152 6.3 ... Die fußgesteuerte do-while-Schleife ... 154 6.4 ... Kontrolliertes Verlassen von Schleifen ... 157 6.5 ... Kontrollfragen und Aufgaben ... 161 7. Funktionen erstellen ... 163 7.1 ... Funktionen definieren ... 164 7.2 ... Funktionen aufrufen ... 165 7.3 ... Funktionsdeklaration (Vorausdeklaration) ... 166 7.4 ... Funktionsparameter ... 169 7.5 ... Rückgabewert von Funktionen ... 171 7.6 ... Exkurs: Funktionen bei der Ausführung ... 175 7.7 ... Inline-Funktionen ... 176 7.8 ... Rekursionen ... 177 7.9 ... Die main()-Funktion ... 179 7.10 ... Programme mit exit() beenden ... 182 7.11 ... Globale, lokale und statische Variablen ... 183 7.12 ... Kontrollfragen und Aufgaben ... 191 8. Präprozessor-Direktiven ... 193 8.1 ... Dateien einfügen mit #include ... 194 8.2 ... Konstanten und Makros mit #define und #undef ... 195 8.3 ... Bedingte Kompilierung ... 202 8.4 ... Programmdiagnose mit assert() ... 209 8.5 ... Generische Auswahl ... 211 8.6 ... Eigene Header erstellen ... 213 8.7 ... Kontrollfragen und Aufgaben ... 215 9. Arrays und Zeichenketten (Strings) ... 219 9.1 ... Was genau sind Arrays? ... 219 9.2 ... Mehrdimensionale Arrays ... 232 9.3 ... Strings (Zeichenketten) ... 239 9.4 ... Kontrollfragen und Aufgaben ... 249 10. Zeiger (Pointer) ... 251 10.1 ... Zeiger vereinbaren ... 251 10.2 ... Zeiger verwenden ... 252 10.3 ... Zugriff auf den Inhalt von Zeigern ... 255 10.4 ... Zeiger als Funktionsparameter ... 260 10.5 ... Zeiger als Rückgabewert ... 261 10.6 ... Zeigerarithmetik ... 264 10.7 ... Zugriff auf Array-Elemente über Zeiger ... 265 10.8 ... Arrays und Zeiger als Funktionsparameter ... 268 10.9 ... char-Arrays und Zeiger ... 271 10.10 ... Arrays von Zeigern ... 272 10.11 ... void-Zeiger ... 275 10.12 ... Typqualifizierer bei Zeigern ... 276 10.13 ... Zeiger auf Funktionen ... 281 10.14 ... Kontrollfragen und Aufgaben ... 285 11. Dynamische Speicherverwaltung ... 289 11.1 ... Neuen Speicher zur Laufzeit reservieren ... 290 11.2 ... Speicherblöcke vergrößern oder verkleinern ... 295 11.3 ... Speicherblöcke wieder freigeben ... 300 11.4 ... Kontrollfragen und Aufgaben ... 302 12. Komplexe Datentypen ... 305 12.1 ... Strukturen ... 306 12.2 ... Unions ... 333 12.3 ... Der Aufzählungstyp enum ... 336 12.4 ... Eigene Typen mit typedef deklarieren ... 338 12.5 ... Kontrollfragen und Aufgaben ... 340 13. Dynamische Datenstrukturen ... 343 13.1 ... (Einfach) verkettete Listen ... 343 13.2 ... Doppelt verkettete Listen ... 357 13.3 ... Kontrollfragen und Aufgaben ... 358 14. Eingabe- und Ausgabefunktionen ... 361 14.1 ... Verschiedene Streams und Standard-Streams ... 361 14.2 ... Dateien ... 364 14.3 ... Dateien öffnen ... 365 14.4 ... Dateien schließen ... 371 14.5 ... Fehler oder Dateiende prüfen ... 372 14.6 ... Weitere Funktionen für die Ein- und Ausgabe ... 374 14.7 ... Funktionen zur formatierten Ein-/Ausgabe ... 387 14.8 ... Wahlfreier Dateizugriff ... 400 14.9 ... Sicherere Funktionen mit C11 ... 404 14.10 ... Datei löschen oder umbenennen ... 405 14.11 ... Pufferung ... 405 14.12 ... Kontrollfragen und Aufgaben ... 407 15. Zeitroutinen (time.h) ... 411 15.1 ... Die Funktion clock() ... 411 15.2 ... Erweiterte Zeitfunktionen ... 413 A. Übersichtstabellen wichtiger Sprachelemente ... 427 A.1 ... Operatorpriorität (Operator Precedence) ... 427 A.2 ... Reservierte Schlüsselwörter in C ... 429 A.3 ... Header-Dateien der Standardbibliothek ... 430 A.4 ... Kommandozeilenargumente ... 432 A.5 ... Weiterführende Ressourcen ... 435 B. Lösungen der Übungsaufgaben ... 437 B.1 ... Antworten und Lösungen zu Kapitel 2 ... 437 B.2 ... Antworten und Lösungen zu Kapitel 3 ... 438 B.3 ... Antworten und Lösungen zu Kapitel 4 ... 438 B.4 ... Antworten und Lösungen zu Kapitel 5 ... 440 B.5 ... Antworten und Lösungen zu Kapitel 6 ... 443 B.6 ... Antworten und Lösungen zu Kapitel 7 ... 446 B.7 ... Antworten und Lösungen zu Kapitel 8 ... 448 B.8 ... Antworten und Lösungen zu Kapitel 9 ... 451 B.9 ... Antworten und Lösungen zu Kapitel 10 ... 456 B.10 ... Antworten und Lösungen zu Kapitel 11 ... 461 B.11 ... Antworten und Lösungen zu Kapitel 12 ... 465 B.12 ... Antworten und Lösungen zu Kapitel 13 ... 469 B.13 ... Antworten und Lösungen zu Kapitel 14 ... 474 B.14 ... Antworten und Lösungen zu Kapitel 15 ... 476 Index ... 481

      Grundkurs C