Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
Dieses Buch bietet Programmiereinsteigern und Studenten technischer Fächer einen umfassenden Einstieg in C. Auch für fortgeschrittene C-Programmierer ist das Buch eine ausgezeichnete Fundgrube.

Nutzen Sie die HTML-Version des Buches zum Reinschnuppern oder als immer verfügbare Ergänzung zu Ihrem Buch.

Die gedruckte Version des Buches erhalten Sie in unserem Online-Shop - versandkostenfrei innerhalb Deutschlands und Österreichs.
Zum Online-Shop

Vorwort

Vorwort zur 2. Auflage

Vorwort des Gutachters

Galileo Computing - Zum Seitenanfang

1 Einstieg in C

1.1 Übersicht zu C
1.2 Der ANSI C-Standard
  1.2.1 Der Vorteil des ANSI C-Standards
1.3 Der POSIX-Standard
1.4 Vor- und Nachteile der Programmiersprache C
1.5 C in diesem Buch
1.6 Was benötige ich für C?
  1.6.1 Texteditor
  1.6.2 Compiler
  1.6.3 All-in-one – die Entwicklungsumgebung
1.7 Welcher Compiler und welches Betriebssystem?
Galileo Computing - Zum Seitenanfang

2 Das erste Programm

2.1 Der beste Lernerfolg
2.2 »Hallo Welt« in C
2.3 Analyse des Programms
Galileo Computing - Zum Seitenanfang

3 Zeichensätze

3.1 Basic-Zeichensatz
3.2 Ausführungszeichensatz (Steuerzeichen)
Galileo Computing - Zum Seitenanfang

4 Kommentare in C

4.1 Wann sind Kommentare sinnvoll?
4.2 Welche Kommentar-Schreibweise: // oder /* */
Galileo Computing - Zum Seitenanfang

5 Formatierte Eingabe mit scanf()

5.1 Der Adressoperator »&«
5.2 Probleme und deren Behandlung mit scanf()
  5.2.1 Möglichkeit 1
  5.2.2 Möglichkeit 2
  5.2.3 Möglichkeit 3
5.3 Format prüfen
5.4 Zusammenfassung scanf()
Galileo Computing - Zum Seitenanfang

6 Formatierte Ausgabe mit printf

Galileo Computing - Zum Seitenanfang

7 Elementare Datentypen

7.1 Der Datentyp int (Integer)
7.2 Variablen deklarieren
  7.2.1 Erlaubte Bezeichner
7.3 C versus C++ bei der Deklaration von Variablen
7.4 Der Datentyp long
7.5 Der Datentyp short
7.6 Die Gleitpunkttypen float und double
  7.6.1 Gleitpunkttypen im Detail
  7.6.2 float im Detail
  7.6.3 double im Detail
  7.6.4 long double
  7.6.5 Einiges zu n-stelliger Genauigkeit
7.7 Numerische Gleitpunktprobleme
7.8 Der Datentyp char
7.9 Nationale contra internationale Zeichensätze
7.10 Vorzeichenlos und vorzeichenbehaftet
7.11 Limits für Ganzzahl- und Gleitpunktdatentypen
7.12 Konstanten
  7.12.1 Ganzzahlkonstanten
  7.12.2 Gleitpunktkonstanten
  7.12.3 Zeichenkonstanten
  7.12.4 String-Literale (Stringkonstante)
7.13 Umwandlungsvorgaben für formatierte Ein–/Ausgabe
Galileo Computing - Zum Seitenanfang

8 Operatoren

8.1 Exkurs zu Operatoren
8.2 Arithmetische Operatoren
  8.2.1 Dividieren von Ganzzahlen
8.3 Erweiterte Darstellung arithmetischer Operatoren
8.4 Inkrement- und Dekrement-Operatoren
8.5 Bit-Operatoren
  8.5.1 Bitweises UND
  8.5.2 Bitweises ODER
  8.5.3 Bitweise XOR
  8.5.4 Bitweises Komplement
  8.5.5 Linksverschiebung
  8.5.6 Rechtsverschiebung
  8.5.7 Rezept für Fortgeschrittene
8.6 sizeof-Operator
  8.6.1 C versus C++
Galileo Computing - Zum Seitenanfang

9 Typenumwandlung

Galileo Computing - Zum Seitenanfang

10 Kontrollstrukturen

10.1 Verzweigungen mit der if-Bedingung
  10.1.1 Anweisungsblock
10.2 Die Verzweigung mit else if
10.3 Die Verzweigung mit else
10.4 Der !-Operator (logischer Operator)
10.5 Logisches UND (&&) – Logisches ODER (||)
10.6 Bedingungsoperator ?:
10.7 Fallunterscheidung: die switch-Verzweigung
  10.7.1 default
10.8 Die while-Schleife
  10.8.1 Endlosschleife (while)
  10.8.2 Fehlervermeidung bei while-Schleifen
10.9 Die do while-Schleife
10.10 Die for-Schleife
  10.10.1 Beispiele für eine for-Schleife
10.11 Kontrollierte Sprünge
  10.11.1 continue
  10.11.2 break
10.12 Direkte Sprünge mit goto
10.13 Notationsstil
  10.13.1 K&R-Stil
  10.13.2 Whitesmith-Stil
  10.13.3 Allman-Stil
  10.13.4 GNU EMACS-Stil
  10.13.5 Der Stil des Autors ;) (K&R-like)
Galileo Computing - Zum Seitenanfang

11 Funktionen

11.1 Was sind Funktionen?
11.2 Wozu Funktionen?
11.3 Definition von Funktionen
11.4 Funktionsaufruf
11.5 Funktionsdeklaration
11.6 Lokale Variablen
11.7 Globale Variablen
11.8 Statische Variablen
11.9 Schlüsselworte für Variablen – Speicherklassen
  11.9.1 auto
  11.9.2 extern
  11.9.3 register
  11.9.4 static
11.10 Typ-Qualifizierer
  11.10.1 volatile
  11.10.2 const
11.11 Geltungsbereich von Variablen
11.12 Speicherklassen-Spezifizierer für Funktionen
  11.12.1 extern
  11.12.2 static
  11.12.3 volatile
11.13 Datenaustausch zwischen Funktionen
11.14 Wertübergabe an Funktionen (call-by-value)
11.15 Rückgabewert von Funktionen
11.16 Die Hauptfunktion main()
11.17 Rückgabewert beim Beenden eines Programms
11.18 Funktionen der Laufzeitbibliothek
11.19 Getrenntes Compilieren von Quelldateien
11.20 Rekursive Funktionen
  11.20.1 Exkurs: Stack
  11.20.2 Rekursionen und der Stack
  11.20.3 Fakultät
  11.20.4 Fibonacci-Zahlen
  11.20.5 Größter gemeinsamer Teiler (GGT)
Galileo Computing - Zum Seitenanfang

12 Präprozessor-Direktiven

12.1 Einkopieren von Dateien mittels #include
12.2 Makros und Konstanten – #define
  12.2.1 Symbolische Konstanten mit #define
  12.2.2 Makros mit #define
12.3 Bedingte Kompilierung
12.4 Vordefinierte Präprozessor-Direktiven (ANSI C)
12.5 Ersetzung eines Makroparameters durch einen String
12.6 #undef – Makronamen wieder aufheben
12.7 Ausgeben von Fehlermeldungen – #error
12.8 #pragma
Galileo Computing - Zum Seitenanfang

13 Arrays

13.1 Arrays deklarieren
13.2 Initialisierung und Zugriff auf Arrays
  13.2.1 Gültigkeitsbereich von Arrays
13.3 Arrays vergleichen
13.4 Anzahl der Elemente eines Arrays ermitteln
13.5 Übergabe von Arrays an Funktionen
13.6 Arrays aus Funktionen zurückgeben
13.7 Programmbeispiel zu den Arrays
13.8 Einlesen von Array-Werten
13.9 Mehrdimensionale Arrays
13.10 Mehrdimensionale Arrays initialisieren
  13.10.1 Tic Tac Toe
  13.10.2 Dreidimensionale Arrays
13.11 Übergabe von zwei- bzw. mehrdimensionalen Arrays an Funktionen
13.12 Arrays in Tabellenkalkulation einlesen (*.CSV–Dateien)
13.13 Strings/Zeichenketten (char Array)
  13.13.1 Vom String zur Binärzahl
13.14 Einlesen von Strings
13.15 Standard-Bibliothek <string.h>
  13.15.1 strcat() – Strings aneinander hängen
  13.15.2 strchr() – ein Zeichen im String suchen
  13.15.3 strcmp() – Strings vergleichen
  13.15.4 strcpy() – einen String kopieren
  13.15.5 strcspn() – einen Teilstring ermitteln
  13.15.6 strlen() – Länge eines Strings ermitteln
  13.15.7 strncat() – String mit n Zeichen aneinander hängen
  13.15.8 strncmp() – n Zeichen von zwei Strings miteinander vergleichen
  13.15.9 strncpy() – String mit n Zeichen kopieren
  13.15.10 strpbrk() – Auftreten bestimmter Zeichen suchen
  13.15.11 strrchr() – das letzte Auftreten eines bestimmten Zeichens im String suchen
  13.15.12 strspn() – erstes Auftreten eines Zeichens, das nicht vorkommt
  13.15.13 strstr() – String nach Auftreten eines Teilstrings durchsuchen
  13.15.14 strtok() – String anhand bestimmter Zeichen zerlegen
Galileo Computing - Zum Seitenanfang

14 Zeiger (Pointer)

14.1 Zeiger deklarieren
14.2 Zeiger initialisieren
  14.2.1 Speichergröße von Zeigern
14.3 Zeigerarithmetik
14.4 Zeiger, die auf andere Zeiger verweisen
  14.4.1 Subtraktion zweier Zeiger
14.5 Typensicherung bei der Dereferenzierung
14.6 Zeiger als Funktionsparameter (call–by–reference)
  14.6.1 Zeiger als Rückgabewert
14.7 Array und Zeiger
14.8 Zeiger auf Strings
  14.8.1 Zeiger auf konstante Objekte (Read-only-Zeiger)
14.9 Zeiger auf Zeiger und Stringtabellen
  14.9.1 Stringtabellen
14.10 Zeiger auf Funktionen
14.11 void-Zeiger
14.12 Äquivalenz zwischen Zeigern und Arrays
Galileo Computing - Zum Seitenanfang

15 Kommandozeilenargumente

15.1 Argumente an die Hauptfunktion
15.2 Optionen (Schalter) aus der Kommandozeile auswerten
Galileo Computing - Zum Seitenanfang

16 Dynamische Speicherverwaltung

16.1 Das Speicherkonzept
16.2 Speicheralloziierung mit malloc()
16.3 Die Mysterie von NULL
  16.3.1 NULL für Fortgeschrittene
  16.3.2 Was jetzt – NULL, 0 oder \0 ... ?
  16.3.3 Zusammengefasst
16.4 Speicherreservierung und ihre Probleme
16.5 free() – Speicher wieder freigeben
16.6 Die Freispeicherverwaltung
  16.6.1 Prozessinterne Freispeicherverwaltung
16.7 Dynamisches Array
16.8 Speicher dynamisch reservieren mit realloc und calloc
16.9 Speicher vom Stack anfordern mit alloca (nicht ANSI C)
16.10 free – Speicher wieder freigeben
16.11 Zweidimensionale dynamische Arrays
16.12 Wenn die Speicheralloziierung fehlschlägt
  16.12.1 Speicheranforderung reduzieren
  16.12.2 Speicheranforderungen aufteilen
  16.12.3 Einen Puffer konstanter Größe verwenden
  16.12.4 Zwischenspeichern auf Festplatte vor der Alloziierung
  16.12.5 Nur so viel Speicher anfordern wie nötig
Galileo Computing - Zum Seitenanfang

17 Strukturen

17.1 Struktur deklarieren
17.2 Initialisierung und Zugriff auf Strukturen
17.3 Strukturen als Wertübergabe an eine Funktion
17.4 Strukturen als Rückgabewert einer Funktion
17.5 Strukturen vergleichen
17.6 Arrays von Strukturen
17.7 Strukturen in Strukturen (Nested Structures)
17.8 Kurze Zusammenfassung zu den Strukturen
17.9 Union
17.10 Aufzählungstyp enum
17.11 Typendefinition mit typedef
17.12 Attribute von Strukturen verändern (nicht ANSI C)
17.13 Bitfelder
17.14 Das offsetof-Makro
Galileo Computing - Zum Seitenanfang

18 Ein-/Ausgabe-Funktionen

18.1 Was ist eine Datei?
18.2 Formatierte und unformatierte Ein-/Ausgabe
18.3 Streams
18.4 Höhere Ein-/Ausgabe-Funktionen
18.5 Datei (Stream) öffnen – fopen
  18.5.1 Modus für fopen()
  18.5.2 Maximale Anzahl geöffneter Dateien – FOPEN_MAX
18.6 Zeichenweise Lesen und Schreiben – getchar und putchar
  18.6.1 Ein etwas portableres getch()
18.7 Zeichenweise Lesen und Schreiben – putc/fputc und getc/fgetc
18.8 Datei (Stream) schließen – fclose
18.9 Formatiertes Einlesen/Ausgeben von Streams mit fprintf und fscanf
18.10 Standard-Streams in C
  18.10.1 Standard-Streams umleiten
18.11 Fehlerbehandlung von Streams – feof, ferror und clearerr
18.12 Gelesenes Zeichen in die Eingabe zurück-schieben – ungetc
18.13 (Tastatur-)Puffer leeren – fflush
  18.13.1 Pufferung
18.14 Stream positionieren – fseek, rewind und ftell
18.15 Stream positionieren – fsetpos, fgetpos
18.16 Zeilenweise Ein-/Ausgabe von Streams
  18.16.1 Zeilenweise Lesen mit gets/fgets
  18.16.2 Zeilenweise Schreiben mit puts/fputs
  18.16.3 Zeilenweise Einlesen vom Stream mit getline() (nicht ANSI C)
  18.16.4 Rezepte für zeilenweises Einlesen und Ausgeben
18.17 Blockweise Lesen und Schreiben – fread und fwrite
  18.17.1 Blockweises Lesen – fread()
  18.17.2 Blockweises Schreiben – fwrite()
  18.17.3 Big-Endian und Little-Endian
18.18 Datei (Stream) erneut öffnen – freopen
18.19 Datei löschen oder umbenennen – remove und rename
  18.19.1 remove()
  18.19.2 rename()
18.20 Pufferung einstellen – setbuf und setvbuf
18.21 Temporäre Dateien erzeugen – tmpfile und tmpnam
  18.21.1 mkstemp() – Sichere Alternative für Linux/UNIX (nicht ANSI C)
18.22 Fehlerausgabe mit strerror und perror
18.23 Formatiert in einem String schreiben und formatiert aus einem String lesen – sscanf und sprintf
18.24 Fortgeschrittenes Thema
18.25 Low-Level-Datei-I/O-Funktionen (nicht ANSI C)
18.26 Datei öffnen – open
18.27 Datei schließen – close
18.28 Datei erzeugen – creat
18.29 Schreiben und Lesen – write und read
18.30 File-Deskriptor positionieren – lseek
18.31 File-Deskriptor von einem Stream – fileno
18.32 Stream von File-Deskriptor – fdopen
Galileo Computing - Zum Seitenanfang

19 Attribute von Dateien und Arbeiten mit Verzeichnissen (nicht ANSI C)

19.1 Attribute einer Datei ermitteln – stat()
  19.1.1 stat() – st_mode
  19.1.2 stat() – st_size
  19.1.3 stat() – st_atime, st_mtime und st_ctime
  19.1.4 stat() – st_gid und st_uid
  19.1.5 stat() – st_nlink, st_ino
  19.1.6 stat() – st_dev, st_rdev
19.2 Prüfen des Zugriffsrechts – access
19.3 Verzeichnis-Funktionen
  19.3.1 Verzeichnis erstellen, löschen und wechseln – mkdir, rmdir und chdir
  19.3.2 Wechseln in das Arbeitsverzeichnis – getcwd
  19.3.3 Verzeichnisse öffnen, lesen und schließen – opendir, readdir und closedir
Galileo Computing - Zum Seitenanfang

20 Arbeiten mit variablen langen Argumentlisten – <stdarg.h>

20.1 Makros in <stdarg.h> – va_list, va_arg, va_start und va_end
20.2 Argumentliste am Anfang oder Ende kennzeichnen
20.3 vprintf, vsprintf und vfsprintf
Galileo Computing - Zum Seitenanfang

21 Zeitroutinen

21.1 Die Headerdatei <time.h>
  21.1.1 Konstanten in der Headerdatei <time.h>
  21.1.2 Datums – und Zeitfunktionen in <time.h>
21.2 Laufzeitmessung (Profiling)
Galileo Computing - Zum Seitenanfang

22 Weitere Headerdateien und ihre Funktionen (ANSI C)

22.1 <assert.h> -– Testmöglichkeiten und Fehlersuche
22.2 <ctype.h> – Zeichenklassifizierung und Umwandlung
22.3 Mathematische Funktionen – <math.h>
22.4 <stdlib.h>
  22.4.1 Programmbeendigung – exit(), _exit(), atexit() und abort()
  22.4.2 Konvertieren von Strings in numerische Werte
  22.4.3 Bessere Alternative – Konvertieren von Strings in numerische Werte
  22.4.4 Zufallszahlen
  22.4.5 Absolutwerte, Quotient und Rest von Divisionen
  22.4.6 Suchen und Sortieren – qsort() und bsearch()
  22.4.7 system()
22.5 <locale.h> – Länderspezifische Eigenheiten
22.6 <setjmp.h>
22.7 <signal.h>
22.8 <string.h> – Die mem…-Funktionen zur Speichermanipulation
  22.8.1 memchr() – Suche nach einzelnen Zeichen
  22.8.2 memcmp() – Bestimmte Anzahl von Bytes vergleichen
  22.8.3 memcpy() – Bestimmte Anzahl von Bytes kopieren
  22.8.4 memmove() – Bestimmte Anzahl von Bytes kopieren
  22.8.5 memset() – Speicherbereich mit bestimmten Zeichen auffüllen
22.9 Erweiterter ANSI C-Standard (ANSI C99)
  22.9.1 Neue elementare Datentypen
  22.9.2 <stdint.h> – Ganzzahlige Typen mit vorgegebener Breite
  22.9.3 Komplexe Gleitpunkttypen
  22.9.4 <iso646.h> – Symbolische Konstanten für Operatoren
  22.9.5 Deklaration von Bezeichnern
  22.9.6 inline-Funktionen
  22.9.7 Vordefinierte Makros
  22.9.8 <math.h> – Neue Funktionen
  22.9.9 <wchar.h> – (NA1)
  22.9.10 <wctype.h> (NA1)
  22.9.11 <fenv.h> – Kontrolle der Gleitpunkzahlen-Umgebung
  22.9.12 <inttypes.h> – Für genauere Integer-Typen
  22.9.13 <tgmath.h> – Typengenerische Mathematik-Funktionen
  22.9.14 Zusammenfassung
Galileo Computing - Zum Seitenanfang

23 Dynamische Datenstrukturen

23.1 Lineare Listen (einfach verkettete Listen)
  23.1.1 Erstes Element der Liste löschen
  23.1.2 Beliebiges Element in der Liste löschen
  23.1.3 Elemente der Liste ausgeben
  23.1.4 Eine vollständige Liste auf einmal löschen
  23.1.5 Element in die Liste einfügen
23.2 Doppelt verkettete Listen
23.3 Stacks nach dem LIFO (Last-in-First-out)-Prinzip
23.4 Queues nach dem FIFO-Prinzip
Galileo Computing - Zum Seitenanfang

24 Algorithmen

24.1 Was sind Algorithmen?
24.2 Wie setze ich Algorithmen ein?
24.3 Sortieralgorithmen
  24.3.1 Selektion Sort – Sortieren durch Auswählen
  24.3.2 Insertion Sort
  24.3.3 Bubble Sort
  24.3.4 Shellsort
  24.3.5 Quicksort
  24.3.6 qsort()
  24.3.7 Zusammenfassung der Sortieralgorithmen
24.4 Suchalgorithmen – Grundlage zur Suche
  24.4.1 Lineare Suche
  24.4.2 Binäre Suche
  24.4.3 Binäre (Such-)Bäume
  24.4.4 Elemente im binären Baum einordnen
  24.4.5 Binäre Bäume travesieren
  24.4.6 Löschen eines Elements im binären Baum
  24.4.7 Ein binärer Suchbaum in der Praxis
  24.4.8 Binäre Suchbäume mit Eltern-Zeiger und Threads
  24.4.9 Ausgeglichene Binärbäume
  24.4.10 Algorithmen für ausgeglichene Bäume – eine Übersicht
24.5 Hashing (Zerhacken)
  24.5.1 Wann wird Hashing verwendet?
  24.5.2 Was ist für das Hashing erforderlich?
  24.5.3 Hash-Funktion
  24.5.4 Hashing mit direkter Adressierung
  24.5.5 Vergleich von Hashing mit binären Bäumen
24.6 String-Matching
  24.6.1 Brute-Force-Algorithmus
  24.6.2 Der Algorithmus von Knuth/Morris/Pratt (KMP)
  24.6.3 Weitere String-Matching-Algorithmen
24.7 Pattern Matching (reguläre Ausdrücke)
24.8 Backtracking
  24.8.1 Der Weg durch den Irrgarten
  24.8.2 Das 8-Dame-Problem
Galileo Computing - Zum Seitenanfang

25 Sicheres Programmieren

25.1 Buffer Overflow (Speicherüberlauf)
  25.1.1 Speicherverwaltung von Programmen
  25.1.2 Der Stack-Frame
  25.1.3 Rücksprungadresse manipulieren
  25.1.4 Gegenmaßnahmen zum Buffer Overflow während der Programmerstellung
  25.1.5 Gegenmaßnahmen zum Buffer Overflow, wenn das Programm fertig ist
  25.1.6 Programme und Tools zum Buffer Overflow
  25.1.7 Ausblick
25.2 Memory Leaks (Speicherlecks)
  25.2.1 Bibliotheken und Tools zu Memory Leaks
25.3 Tipps zu Sicherheitsproblemen
Galileo Computing - Zum Seitenanfang

26 CGI mit C

26.1 Was ist CGI?
26.2 Vorteile von CGIs in C
26.3 Andere Techniken der Webprogrammierung
26.4 Das dreistufige Webanwendungsdesign
  26.4.1 Darstellungsschicht
  26.4.2 Verarbeitungsschicht
  26.4.3 Speicherschicht
26.5 Clientseitige Programmierung
  26.5.1 JavaScript
  26.5.2 Java-Applets
26.6 Serverseitige Programmierung
26.7 Der Webserver
  26.7.1 Das Client/Server-Modell des Internets
  26.7.2 Serverimplementierung
  26.7.3 Hosting-Services
  26.7.4 Schlüsselfertige Lösung
  26.7.5 Weitere Möglichkeiten
  26.7.6 Apache
26.8 Das HTTP-Protokoll
  26.8.1 Web-Protokolle
  26.8.2 Wozu Protokolle?
  26.8.3 Was ist ein Protokoll?
  26.8.4 Normen für die Netzwerktechnik
  26.8.5 Das OSI-Schichtenmodell
  26.8.6 Die Elemente einer URL
  26.8.7 Client-Anfrage – HTTP Request (Browser-Request)
  26.8.8 Serverantwort (Server-Response)
  26.8.9 Zusammenfassung
26.9 Das Common Gateway Interface (CGI)
  26.9.1 Filehandles
  26.9.2 CGI-Umgebungsvariablen
  26.9.3 CGI-Ausgabe
26.10 HTML-Formulare
  26.10.1 Die Tags und ihre Bedeutung
26.11 CGI-Eingabe
  26.11.1 Die Anfrage des Clients an den Server
  26.11.2 Eingabe parsen
26.12 Ein Gästebuch
  26.12.1 Das HTML-Formular (guestbook.html)
  26.12.2 Das CGI-Programm (auswert.cgi)
  26.12.3 Das HTML-Gästebuch (gaeste.html)
  26.12.4 Das Beispiel ausführen
26.13 Ausblick
Galileo Computing - Zum Seitenanfang

27 MySQL und C

27.1 Aufbau eines Datenbanksystems
  27.1.1 Warum wurde ein Datenbanksystem (DBS) entwickelt?
  27.1.2 Das Datenbank-Management-System (DBMS)
  27.1.3 Relationale Datenbank
  27.1.4 Eigene Clients mit C für SQL mit der ODBC-API entwickeln
27.2 MySQL installieren
  27.2.1 Linux
  27.2.2 Windows
  27.2.3 Den Client mysql starten
27.3 Crashkurs (My)SQL
  27.3.1 Was ist SQL?
  27.3.2 Die Datentypen von (My)SQL
  27.3.3 Eine Datenbank erzeugen
  27.3.4 Eine Datenbank löschen
  27.3.5 Datenbank wechseln
  27.3.6 Eine Tabelle erstellen
  27.3.7 Die Tabelle anzeigen
  27.3.8 Tabellendefinition überprüfen
  27.3.9 Tabelle löschen
  27.3.10 Struktur einer Tabelle ändern
  27.3.11 Datensätze eingeben
  27.3.12 Datensätze auswählen
  27.3.13 Ein fortgeschrittenes Szenario
  27.3.14 Datensatz löschen
  27.3.15 Datensatz ändern
  27.3.16 Zugriffsrechte in MySQL
  27.3.17 Übersicht über einige SQL-Kommandos
27.4 Die MySQL C-API
  27.4.1 Grundlagen zur Programmierung eines MySQL-Clients
  27.4.2 Client-Programm mit dem gcc- unter Linux und dem Cygwin gcc-Compiler unter Windows
  27.4.3 MySQL Client-Programme mit dem VC++ Compiler und dem Borland Freeware Compiler
  27.4.4 Troubleshooting
  27.4.5 Das erste Client-Programm – Verbindung mit dem MySQL-Server herstellen
  27.4.6 MySQL-Kommandozeilen-Optionen
  27.4.7 Anfrage an den Server
27.5 MySQL und C mit CGI
  27.5.1 HTML-Eingabeformular
  27.5.2 CGI-Anwendung add_db.cgi
  27.5.3 CGI-Anwendung search_db.cgi
27.6 Funktionsübersicht
27.7 Datentypenübersicht der C-API
Galileo Computing - Zum Seitenanfang

28 Netzwerkprogrammierung und Cross-Plattform-Entwicklung

28.1 Begriffe zur Netzwerktechnik
  28.1.1 IP-Nummern
  28.1.2 Portnummer
  28.1.3 Host- und Domainname
  28.1.4 Nameserver
  28.1.5 Das IP-Protokoll
  28.1.6 TCP und UDP
  28.1.7 Was sind Sockets?
28.2 Headerdateien zur Socketprogrammierung
  28.2.1 Linux/UNIX
  28.2.2 Windows
28.3 Client-/Server-Prinzip
  28.3.1 Loopback-Interface
28.4 Erstellen einer Client-Anwendung
  28.4.1 socket() – Erzeugen eines Kommunikationsendpunktes
  28.4.2 connect() – Client stellt Verbindung zum Server her
  28.4.3 Senden und Empfangen von Daten
  28.4.4 close(), closesocket()
28.5 Erstellen einer Server-Anwendung
  28.5.1 bind() – Festlegen einer Adresse aus dem Namensraum
  28.5.2 listen() – Warteschlange für eingehende Verbindungen einrichten
  28.5.3 accept() und die Serverhauptschleife
28.6 (Cross-Plattform)TCP-Echo-Server
  28.6.1 Der Client
  28.6.2 Der Server
28.7 Cross-Plattform-Development
  28.7.1 Abstraktion Layer
  28.7.2 Headerdatei Linux/UNIX
  28.7.3 Linux/UNIX-Quelldatei
  28.7.4 Headerdatei MS-Windows
  28.7.5 Windows-Quelldatei
  28.7.6 All together – die main-Funktionen
  28.7.7 Ein UDP-Beispiel
  28.7.8 Mehrere Clients gleichzeitig behandeln
28.8 Weitere Anmerkungen zur Netzwerkprogrammierung
  28.8.1 Das Datenformat
  28.8.2 Der Puffer
  28.8.3 Portabilität
  28.8.4 Von IPv4 nach IPv6
  28.8.5 RFC-Dokumente (Request for Comments)
  28.8.6 Sicherheit
Galileo Computing - Zum Seitenanfang

29 Wie geht’s jetzt weiter?

29.1 GUI-Programmierung – Grafische Oberflächen
  29.1.1 Low-Level-Grafikprogrammierung
  29.1.2 High-Level-Grafikprogrammierung
  29.1.3 Mutimedia-Grafikprogrammierung
Galileo Computing - Zum Seitenanfang

A Anhang

A.1 Rangfolge der Operatoren
A.2 ASCII-Code-Tabelle
A.3 Reservierte Schlüsselwörter in C
A.4 Standard-Headerdateien der ANSI C-Bibliothek
A.5 Weiterführende Links
A.6 Weiterführende Literatur
  A.6.1 Bücher zum ANSI C-Standard
  A.6.2 Algorithmen und Datenstrukturen
  A.6.3 HTML, CGI-Webprogrammierung
  A.6.4 Linux/UNIX
  A.6.5 MySQL
Galileo Computing - Zum Seitenanfang

Index

 
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de