C von A bis Z: das umfassende Handbuch
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Bonn
Rheinwerk Verlag
2023
|
Ausgabe: | 5., aktualisierte Auflage |
Schriftenreihe: | Rheinwerk Computing
|
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | Titelzusatz auf dem Cover: aktuell zu C23, das Lehr- und Nachschlagewerk für Ausbildung und Praxis, für Einsteiger, Umsteiger und Profis geeignet, inkl. paralleler Programmierung, Kryptografie, dynamischer Speicherverwaltung, Raspberry Pi u.v.m. |
Beschreibung: | 1263 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm |
ISBN: | 9783836295048 3836295040 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV049015657 | ||
003 | DE-604 | ||
005 | 20240718 | ||
007 | t | ||
008 | 230622s2023 gw a||| |||| 00||| ger d | ||
015 | |a 23,N04 |2 dnb | ||
016 | 7 | |a 1278595791 |2 DE-101 | |
020 | |a 9783836295048 |c Hb.: EUR 49.90 (DE), EUR 51.30 (AT), CHF 63.90 (freier Preis) |9 978-3-8362-9504-8 | ||
020 | |a 3836295040 |9 3-8362-9504-0 | ||
024 | 3 | |a 9783836295048 | |
028 | 5 | 2 | |a Bestellnummer: 459/09504 |
035 | |a (OCoLC)1389176951 | ||
035 | |a (DE-599)DNB1278595791 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-523 |a DE-29T |a DE-19 |a DE-20 |a DE-706 |a DE-92 |a DE-1051 |a DE-B768 |a DE-860 |a DE-1043 |a DE-859 |a DE-573n |a DE-573 | ||
082 | 0 | |a 005.133 |2 23/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |8 1\p |a 004 |2 23sdnb | ||
100 | 1 | |a Krooß, René |e Verfasser |0 (DE-588)1211561577 |4 aut | |
245 | 1 | 0 | |a C von A bis Z |b das umfassende Handbuch |c René Krooß, Jürgen Wolf |
250 | |a 5., aktualisierte Auflage | ||
264 | 1 | |a Bonn |b Rheinwerk Verlag |c 2023 | |
300 | |a 1263 Seiten |b Illustrationen, Diagramme |c 24 cm x 16.8 cm | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Rheinwerk Computing | |
500 | |a Titelzusatz auf dem Cover: aktuell zu C23, das Lehr- und Nachschlagewerk für Ausbildung und Praxis, für Einsteiger, Umsteiger und Profis geeignet, inkl. paralleler Programmierung, Kryptografie, dynamischer Speicherverwaltung, Raspberry Pi u.v.m. | ||
650 | 0 | 7 | |a ANSI C++ |0 (DE-588)4499937-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a ANSI C |0 (DE-588)4233557-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++23 |0 (DE-588)1317339894 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C++ |0 (DE-588)4193909-8 |2 gnd |9 rswk-swf |
653 | |a C-Programmierung | ||
653 | |a Software-Entwicklung | ||
653 | |a Hand-Buch Bücher Wissen Tutorials Kurse Workshops Ausbildung Studium Seminare Beruf | ||
653 | |a C objektorientiert | ||
653 | |a Algorithmen | ||
653 | |a Software-Entwickler | ||
653 | |a C23 | ||
689 | 0 | 0 | |a C |g Programmiersprache |0 (DE-588)4113195-2 |D s |
689 | 0 | 1 | |a ANSI C |0 (DE-588)4233557-7 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a C++ |0 (DE-588)4193909-8 |D s |
689 | 1 | |8 2\p |5 DE-604 | |
689 | 2 | 0 | |a ANSI C++ |0 (DE-588)4499937-9 |D s |
689 | 2 | |8 3\p |5 DE-604 | |
689 | 3 | 0 | |a C++23 |0 (DE-588)1317339894 |D s |
689 | 3 | 1 | |a ANSI C |0 (DE-588)4233557-7 |D s |
689 | 3 | |5 DE-604 | |
700 | 1 | |a Wolf, Jürgen |d 1974- |e Verfasser |0 (DE-588)132691256 |4 aut | |
710 | 2 | |a Rheinwerk Verlag |0 (DE-588)1081738405 |4 pbl | |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=a88b3b9431fa4f74b71299b706cb2fed&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034278639&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a vlb |d 20230119 |q DE-101 |u https://d-nb.info/provenance/plan#vlb | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 3\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-034278639 |
Datensatz im Suchindex
_version_ | 1805087823029600256 |
---|---|
adam_text |
AUF
EINEN
BLICK
1
EINSTIEG
IN
C
.
27
2
EINE
GUENSTIGE
PROGRAMMIERPLATTFORM-DER
RASPBERRY
PI
.
49
3
DAS
ERSTE
PROGRAMM
.
69
4
GRUNDLAGEN
.
77
5
BASISDATENTYPEN
.
91
6
FORMATIERTE
EIN-/AUSGABE
MIT
SCANF()
UND
PRINTFQ
.
145
7
OPERATOREN
.
159
8
TYPUMWANDLUNG
.
179
9
KONTROLLSTRUKTUREN
.
187
10
FUNKTIONEN
.
233
11
PRAEPROZESSOR-DIREKTIVEN
.
281
12
ARRAYS
.
307
13
ZEIGER
(POINTER)
.
369
14
KOMMANDOZEILENARGUMENTE
.
429
15
DYNAMISCHE
SPEICHERVERWALTUNG
.
441
16
STRUKTUREN
.
479
17
EIN-/AUSGABE-FUNKTIONEN
.
537
18
ATTRIBUTE
VON
DATEIEN
UND
DAS
ARBEITEN
MIT
VERZEICHNISSEN
(NICHT
ANSIC)
.
673
19
ARBEITEN
MIT
VARIABEL
LANGEN
ARGUMENTLISTEN
-
STDARG.H
.
705
20
ZEITROUTINEN
.
721
21
WEITERE
HEADERDATEIEN
UND
IHRE
FUNKTIONEN
(ANSI
C)
.
737
22
DYNAMISCHE
DATENSTRUKTUREN
.
797
23
ALGORITHMEN
.
881
24
MYSQL
UND
C
.
1027
25
NETZWERKPROGRAMMIERUNG
UND
CROSS-PLATTFORM-ENTWICKLUNG
.
1107
26 PARALLELES
RECHNEN
.1173
27
SICHERES
PROGRAMMIEREN
.1193
28
WIE
GEHT
'
S
JETZT
WEITER?
.
1219
INHALT
VORWORT
.
25
1
EINSTIEG
IN
C
27
1.1
UEBERSICHT
ZU
C
.
27
1.2
DER
ANSI-C-STANDARD
.
29
1.2.1
WELCHER
C-STANDARD
WIRD
IN
DIESEM
BUCH
VERWENDET?
.
31
1.2.2
DER
VORTEIL
DES
ANSI-C-STANDARDS
.
32
1.3
DER
POSIX-STANDARD
.
32
1.4
VOR
UND
NACHTEILE
DER
PROGRAMMIERSPRACHE
C
.
33
1.5
C
IN
DIESEM
BUCH.
34
1.6
WAS
BENOETIGEN
SIE
FUER
C?
.
35
1.6.1
TEXTEDITOR
.
35
1.6.2
COMPILER
.
35
1.6.3
ALL
IN
ONE-DIE
ENTWICKLUNGSUMGEBUNG
.
36
1.7
WELCHER
COMPILER
UND
WELCHES
BETRIEBSSYSTEM?
.
37
1.8
UNTERSCHIEDE
ZWISCHEN
WINDOWS
UND
LINUX
.
38
1.9
EINE
PROGRAMMIERUMGEBUNG
EINRICHTEN
AM
BEISPIEL
VON
PELLES
C
8.00
FUER
WINDOWS
.
38
1.9.1
PELLES
C
INSTALLIEREN
.
39
1.9.2
EIN
EINFACHES
C-PROJEKT
MIT
PELLES
C
ANLEGEN
.
43
1.10
EINE
PROGRAMMIERUMGEBUNG
EINRICHTEN
-
NANO/GCC
FUER
LINUX
.
47
2
EINE
GUENSTIGE
PROGRAMMIERPLATTFORM
-
DER
RASPBERRY
PI
49
2.1
WAS
GENAU
IST
DER
RASPBERRY
PI?
.
50
2.1.1
DIE
HARDWARE
DES
RASPBERRY
PI
.
50
2.1.2
WELCHE
BETRIEBSSYSTEME
GIBT
ES
FUER
DEN
RASPBERRY
PI?
.
52
2.2
INSTALLATION
EINES
LINUX-BETRIEBSSYSTEMS
AM
BEISPIEL
VON
RASPBERRY
PI
OS
.
54
2.2.1
WAS
GENAU
IST
RASPBERRY
PI
OS,
UND
WAS
GENAU
IST
DEBIAN?
.
54
2.2.2
RASPBERRY
PI
OS
AUS
DEM
INTERNET
HERUNTERLADEN
.
55
2.2.3
DAS
RASPBERRY
PI
OS
INSTALLIEREN
.
57
2.2.4
DEN
PI
MIT
DER
GRUNDKONFIGURATION
STARTEN
.
60
2.2.5
WIE
OFT
BENOETIGEN
SIE
UPDATES,
UND
WIE
GEHEN
SIE
VOR?
.
61
2.3
DIE
KONFIGURATION
DES
RASPBERRY
PI
IM
DETAIL
.
63
2.4
DAS
TOOL
RASPI-CONFIG
.
63
2.4.1
DAS
TOOL
RASPI-CONFIG
IM
DETAIL
.
64
3
DAS
ERSTE
PROGRAMM
69
3.1
WAS
LEISTET
DER
EDITOR?
.
70
3.2
WAS
LEISTET
DER
COMPILER?
.
70
3.3
WAS
SIND
INCLUDE-DATEIEN,
UND
WOZU
BENOETIGT
MAN
SIE?.
71
3.4
DAS
ERSTE
PROGRAMM
-
DIE
AUSGABE
EINES
TEXTES
IN
DER
KONSOLE
.
71
3.5
DAS
HALLO-WELT-PROGRAMM
IM
DETAIL
.
72
3.6
WIE
KOMPILIERT
MAN
EIN
PROGRAMM
UND
FUEHRT
ES
ANSCHLIESSEND
AUS?
.
75
4
GRUNDLAGEN
77
4.1
SYMBOLE
.
77
4.1.1
BEZEICHNER
.
77
4.1.2
SCHLUESSELWOERTER
.
78
4.1.3
LITERALE
.
78
4.1.4
EINFACHE
BEGRENZER
.
80
4.1.5
KOMMENTARE
.
81
4.2
ZEICHENSAETZE
.
84
4.2.1
BASIS-ZEICHENSATZ
.
84
4.2.2
AUSFUEHRUNGSZEICHENSATZ
(STEUERZEICHEN)
.
85
4.2.3
TRIGRAPH-ZEICHEN
.
88
4.3
STRINGS
.
89
4.4
DAS
EINFUEHRUNGSBEISPIEL
MIT
STRINGS
.
90
5
BASISDATENTYPEN
91
5.1
WAS
IST
EIN
BYTE,
UND
WIE
WERDEN
ZAHLEN
IN
C
GESPEICHERT?.
91
5.2
WAS
IST
EINE
VARIABLE,
UND
WAS
IST
EIN
VARIABIENTYP?
.
92
5.3
WAS
IST
EIN
OPERAND?
.
93
5.4
WAS
IST
EIN
PARAMETER?
.
93
5.5
WIE
SPEICHERT
EIN
PROZESSOR
VARIABLEN,
PARAMETER
UND
OPERANDEN?.
93
5.6
WAS
SIND
SPEICHERADRESSEN,
UND
WARUM
SIND
SIE
WICHTIG
FUER
C?
.
93
5.7
DEKLARATION
UND
DEFINITION
VON
VARIABLEN
.
94
5.8
ARRAY-DATENTYPEN
(DATENFELDER)
.
96
5.9
STANDARD-DATENTYPEN
.
96
5.9.1
DER
DATENTYP
INT
(INTEGER),
STANDARDGROESSE
2
BYTE
.
97
5.9.2
VERWENDUNG
DES
DATENTYPS
INT
.
98
5.9.3
DER
DATENTYP
LONG,
STANDARDGROESSE
4
BYTE
.
101
5.9.4
DER
DATENTYP
LONG
LONG,
STANDARDGROESSE
8
BYTE
.
102
5.9.5
DER
DATENTYP
SHORT,
GROESSE
2
BYTE
.
102
5.10
GANZZAHLIGE
TYPEN
MIT
VORGEGEBENER
BREITE
-
STDINT.H
.
103
5.10.1
INTTYPES.H
(AB
C99)
.
105
5.11
DIE
GLEITPUNKTTYPEN
FLOAT
UND
DOUBLE
.
107
5.11.1
GLEITPUNKTTYPEN
IM
DETAIL
.
109
5.11.2
FLOAT
IM
DETAIL
.
109
5.11.3
DOUBLE
IM
DETAIL
.
110
5.11.4
LONG
DOUBLE
.
110
5.11.5
LONG
LONG
DOUBLE
.
111
5.11.6
EINIGES
ZU
N-STELLIGER
GENAUIGKEIT
.
111
5.11.7
NUMERISCHE
GLEITPUNKTPROBLEME
.
113
5.12
KOMPLEXE
GLEITPUNKTTYPEN
-
COMPLEX.H
.
115
5.13
DER
DATENTYP
CHAR,
STANDARDGROESSE
1
BYTE
.
117
5.14
NATIONALE
CONTRA
INTERNATIONALE
ZEICHENSAETZE
.
123
5.14.1
DER
BREITZEICHEN-TYP
WCHAR_T,
GROESSE
2
BYTE
.
125
5.14.2
MULTIBYTE-ZEICHEN,
GROESSE
2,
4
ODER
8
BYTE
.
126
5.15
BOOLESCHE
WERTE
-
STDBOOL.H
.
127
5.16
DER
UNTERSCHIED
ZWISCHEN
VORZEICHENLOSEN
UND
VORZEICHENBEHAFTETEN
ZAHLEN
.
128
5.17
LIMITS
FUER
GANZZAHL
UND
GLEITPUNKTDATENTYPEN
.
130
5.18
DER
TYP
VOID
.
134
5.19
NUMERISCHE
KONSTANTEN
.
134
5.19.1
GANZZAHLKONSTANTEN
.
134
5.19.2
GLEITPUNKTKONSTANTEN
.
135
5.19.3
ZEICHENKONSTANTEN
.
135
5.19.4
STRINGLITERALE
(STRINGKONSTANTEN)
.
136
5.20
UMWANDLUNGSVORGABEN
FUER
FORMATIERTE
EIN-/AUSGABE
.
136
6
FORMATIERTE
EIN-/AUSGABE
MIT
SCANF()
UND
PRINTFQ
145
6.1
FORMATIERTE
EINGABE
MIT
SCANF()
.
145
6.1.1
DER
ADRESSOPERATOR
&
.
147
6.1.2
PROBLEME
UND
IHRE
BEHANDLUNG
MIT
SCANFQ
.
149
6.1.3
UEBERPRUEFEN
AUF
DAS
RICHTIGE
FORMAT
.
152
6.1.4
ZUSAMMENFASSUNG
ZU
SCANFQ
.
154
6.2
FORMATIERTE
AUSGABE
MIT
PRINTF()
.
155
7
OPERATOREN
159
7.1
WAS
SIND
OPERATOREN,
UND
WOZU
BENOETIGT
MAN
SIE
IN
C?
.
159
7.2
ARITHMETISCHE
OPERATOREN
.
160
7.2.1
DIVIDIEREN
VON
GANZZAHLEN
.
162
7.3
ERWEITERTE
DARSTELLUNG
ARITHMETISCHER
OPERATOREN
.
164
7.4
INKREMENT
UND
DEKREMENT-OPERATOREN
.
165
7.5
BIT-OPERATOREN
.
167
7.5.1
BITWEISES
UND
.
167
7.5.2
BITWEISES
ODER
.
169
7.5.3
BITWEISES
XOR
.
170
7.5.4
BITWEISES
KOMPLEMENT
.
171
7.5.5
LINKSVERSCHIEBUNG
.
171
7.5.6
RECHTSVERSCHIEBUNG
.
173
7.5.7
LINKSROTATION
(ERST
AB
C23)
.
173
7.5.8
RECHTSROTATION
(ERST
AB
C23)
.
173
7.5.9
REZEPT
FUER
FORTGESCHRITTENE
.
173
7.6
MAKROS
FUER
LOGISCHE
OPERATOREN
UND
BIT-OPERATOREN
-
ISO646.H
.
175
7.7
DER
SIZEOF-OPERATOR
.
176
7.7.1
C
VERSUS
C++
.
178
8
TYPUMWANDLUNG
179
8.1
AUTOMATISCHE
IMPLIZITE
DATENTYPUMWANDLUNG
DURCH
DEN
C-COMPILER
.
179
8.1.1
IMPLIZITES
CHAR
NACH
INT
.
180
8.1.2
IMPLIZITES
FLOAT
NACH
DOUBLE
.
180
8.1.3
IMPLIZITE
UMWANDLUNG
IN
EINEN
KOMPLEXEN
GLEITPUNKTTYP
.
180
8.1.4
UEBLICHE
ARITHMETISCHE
DATENTYPUMWANDLUNG
.
181
8.2
WOZU
BENOETIGT
MAN
DAS
BENUTZERDEFINIERTE
EXPLIZITE
TYPECASTING?.
184
8.3
EXPLIZITE
DATENTYPUMWANDLUNG
MIT
TYPECASTING
AN
BEISPIELEN
.
184
9
KONTROLLSTRUKTUREN
187
9.1
VERZWEIGUNGEN
MIT
DER
IF-BEDINGUNG
.
188
9.1.1
ANWEISUNGSBLOECKE
.
188
9.2
DIE
VERZWEIGUNG
MIT
EISE
IF
.
192
9.3
DIE
VERZWEIGUNG
MIT
EISE
.
194
9.4
DER
I-OPERATOR
(LOGISCHER
NOT-OPERATOR)
.
198
9.5
LOGISCHES
UND
(&&)
-
LOGISCHES
ODER
(||)
.
200
9.6
DER
BEDINGUNGSOPERATOR
?:
.
203
9.7
FALLUNTERSCHEIDUNG:
DIE
SWITCH-VERZWEIGUNG
.
205
9.7.1
DEFAULT
.
208
9.8
DIE
WHILE-SCHLEIFE
.
210
9.8.1
ENDLOSSCHLEIFEN
MIT
WHILE
.
,
.
212
9.8.2
FEHLERVERMEIDUNG
BEI
WHILE-SCHLEIFEN
.
213
9.9
DIE
DO
WHILE-SCHLEIFE
.
214
9.10
DIE
FOR-SCHLEIFE
.
219
9.10.1
EINSATZMOEGLICHKEITEN
DER
FOR-SCHLEIFE
.
222
9.11
KONTROLLIERTER
AUSSTIEG
AUS
SCHLEIFEN
MIT
BREAK
.
227
9.11.1
CONTINUE
.
227
9.11.2
BREAK
.
229
9.12
DIREKTE
SPRUENGE
MIT
GOTO
.
229
9.13
EINIGE
ANMERKUNGEN
ZUM
NOTATIONSSTIL,
EHE
SIE
WEITERLESEN
.
229
9.14
EINIGE
ANMERKUNGEN
ZU
EINEM
GUTEN
PROGRAMMIERSTIL
.
230
10
FUNKTIONEN
233
10.1
WAS
SIND
FUNKTIONEN?
.
233
10.2
WOZU
DIENEN
FUNKTIONEN?
.
234
10.3
DEFINITION
VON
FUNKTIONEN
.
234
10.4
FUNKTIONSAUFRUF
.
235
10.5
FUNKTIONSDEKLARATION
.
237
10.6
LOKALE
VARIABLEN
.
239
10.7
GLOBALE
VARIABLEN
.
241
10.8
STATISCHE
VARIABLEN
.
243
10.9
SCHLUESSELWOERTER
FUER
VARIABLEN
-
SPEICHERKLASSEN
.
244
10.9.1
AUTO
.
244
10.9.2
EXTERN
.
245
10.9.3
REGISTER
.
245
10.9.4
STATIC
.
245
10.10
TYP-QUALIFIZIERER
.
245
10.10.1
VOLATILE
.
246
10.10.2
CONST
.
246
10.11
GELTUNGSBEREICH
VON
VARIABLEN
.
246
10.12
SPEICHERKLASSEN-SPEZIFIZIERER
FUER
FUNKTIONEN
.
248
10.12.1
EXTERN
.
248
10.12.2
STATIC
.
248
10.12.3
VOLATILE
.
248
10.13
DATENAUSTAUSCH
ZWISCHEN
FUNKTIONEN
.
249
10.14
WERTUEBERGABE
AN
FUNKTIONEN
(CALL-BY-VALUE)
.
250
10.15
DER
RUECKGABEWERT
VON
FUNKTIONEN
.
254
10.16
DIE
HAUPTFUNKTION
.
256
10.17
WAS
BEDEUTET
DER
RUECKGABEWERT
BEIM
BEENDEN
EINES
PROGRAMMS?
.
258
10.17.1
PROGRAMMENDE
AUSWERTEN
.
259
10.18
FUNKTIONEN
DER
LAUFZEITBIBLIOTHEK
.
262
10.19
GETRENNTES
KOMPILIEREN
VON
QUELLDATEIEN
.
263
10.20
REKURSIVE
FUNKTIONEN
(REKURSION)
.
265
10.20.1
EXKURS:
STACK
.
265
10.20.2
REKURSIONEN
UND
DER
STACK
.
266
10.20.3
FAKULTAET
.
272
10.20.4
FIBONACCI-ZAHLEN
.
272
10.20.5
GROESSTER
GEMEINSAMER
TEILER
(GGT)
.
273
10.21
INLINE-FUNKTIONEN
.
278
11
PRAEPROZESSOR-DIREKTIVEN
281
11.1
MIT
#INCLUDE
DATEIEN
EINBINDEN
.
282
11.2
WICHTIGE
VORDEFINIERTE
HEADERDATEIEN
FUER
C
.
283
11.3
MAKROS
UND
KONSTANTEN
-
#DEFINE
.
285
11.3.1
SYMBOLISCHE
KONSTANTEN
MIT
#DEFINE
.
285
11.3.2
MAKROS
MIT
#DEFINE
.
290
11.4
BEDINGTE
KOMPILIERUNG
MIT
#IFDEF
.
294
11.5
VORDEFINIERTE
PRAEPROZESSOR-DIREKTIVEN
(ANSI
C)
.
300
11.6
EINEN
MAKROPARAMETER
DURCH
EINEN
STRING
ERSETZEN
.
302
11.7
#UNDEF
-
MAKRONAMEN
WIEDER
AUFHEBEN
.
304
11.8
FEHLERMELDUNGEN
AUSGEBEN
MIT
.
304
11.9
#PRAGMA
(GILT
NUR
FUER
WINDOWS)
.
306
12
ARRAYS
307
12.1
ARRAYS
DEKLARIEREN
.
308
12.2
INITIALISIERUNG
UND
ZUGRIFF
AUF
ARRAYS
.
309
12.2.1
GUELTIGKEITSBEREICH
VON
ARRAYS
.
315
12.3
ARRAYS
VERGLEICHEN
.
316
12.4
ANZAHL
DER
ELEMENTE
EINES
ARRAYS
ERMITTELN
.
318
12.5
UEBERGABE
VON
ARRAYS
AN
FUNKTIONEN
.
319
12.6
ARRAYS
AUS
FUNKTIONEN
ZURUECKGEBEN
.
322
12.7
PROGRAMMBEISPIEL
ZU
ARRAYS
.
323
12.8
ARRAY-WERTE
UEBER
DIE
TASTATUR
EINLESEN
.
327
12.9
MEHRDIMENSIONALE
ARRAYS
.
328
12.9.1
MEHRDIMENSIONALE
ARRAYS
INITIALISIEREN
.
328
12.9.2
UEBERGABE
VON
ZWEI
BZW.
MEHRDIMENSIONALEN
ARRAYS
AN
FUNKTIONEN
.
341
12.10
ARRAYS
IN
EINE
TABELLENKALKULATION
EINLESEN
(CSV-DATEIEN)
.
343
12.11
STRINGS/ZEICHENKETTEN
(CHAR-ARRAY)
.
345
12.11.1
VOM
STRING
ZUR
BINAERZAHL
.
349
12.12
EINLESEN
VON
STRINGS
.
352
12.13
DIE
STANDARD-BIBLIOTHEK
STRING.H
.
355
12.13.1
STRCATQ-STRINGS
ANEINANDERHAENGEN
.
355
12.13.2
STRCHRQ-EIN
ZEICHEN
IM
STRING
SUCHEN
.
356
12.13.3
STRCMPO-STRINGS
VERGLEICHEN
.
357
12.13.4
STRCPYO-EINEN
STRING
KOPIEREN
.
358
12.13.5
STRCSPN()-EINEN
TEILSTRING
ERMITTELN
.
359
12.13.6
STRLENQ
-
LAENGE
EINES
STRINGS
ERMITTELN
.
360
12.13.7
STRNCATQ
-
STRING
MIT
N
ZEICHEN
ANEINANDERHAENGEN
.
361
12.13.8
STRNCMPO
-
N
ZEICHEN
VON
ZWEI
STRINGS
MITEINANDER
VERGLEICHEN
361
12.13.9
STRNCPYO
-
STRING
MIT
N
ZEICHEN
KOPIEREN
.
362
12.13.10
STRPBRK()
-
NACH
DEM
AUFTRETEN
BESTIMMTER
ZEICHEN
SUCHEN
.
363
12.13.11
STRRCHRQ
-
DAS
LETZTE
AUFTRETEN
EINES
BESTIMMTEN
ZEICHENS
IM
STRING
SUCHEN
.
364
12.13.12
STRSPNO
-
DAS
ERSTE
AUFTRETEN
EINES
ZEICHENS,
DAS
NICHT
VORKOMMT
.
364
12.13.13
STRSTR()
-
EINEN
STRING
NACH
DEM
AUFTRETEN
EINES
TEILSTRINGS
DURCHSUCHEN
.
365
12.13.14
STRTOKQ
-
EINEN
STRING
ANHAND
BESTIMMTER
ZEICHEN
ZERLEGEN
.
366
13
ZEIGER
(POINTER)
369
13.1
DER
UNTERSCHIED
ZWISCHEN
EINER
NORMALEN
VARIABLEN
UND
EINEM
ZEIGER
.
369
13.2
ZEIGER
DEKLARIEREN
.
370
13.3
ZEIGER
INITIALISIEREN
.
371
13.3.1
SPEICHERGROESSE
VON
ZEIGERN
.
383
13.4
ZEIGERARITHMETIK
.
384
13.5
ZEIGER,
DIE
AUF
ANDERE
ZEIGER
VERWEISEN
.
385
13.5.1
SUBTRAKTIONZWEIERZEIGER
.
387
13.6
TYPENSICHERUNG
BEI
DER
DEREFERENZIERUNG
.
388
13.7
ZEIGER
ALS
FUNKTIONSPARAMETER
(CALL-BY-REFERENCE).
389
13.7.1
ZEIGER
ALS
RUECKGABEWERT
.
392
13.8
ARRAY
UND
ZEIGER
.
396
13.9
ZEIGERAUFSTRINGS
.
403
13.9.1
ZEIGER
AUF
KONSTANTE
OBJEKTE
(READ-ONLY-ZEIGER)
.
404
13.10
ZEIGER
AUF
ZEIGER
UND
STRINGTABELLEN
.
405
13.10.1
STRINGTABELLEN
.
407
13.11
ZEIGER
AUF
FUNKTIONEN
.
415
13.12
VOID-ZEIGER
.
420
13.13
AEQUIVALENZ
ZWISCHEN
ZEIGERN
UND
ARRAYS
.
424
13.14
DER
RESTRICT-ZEIGER
.
426
14
KOMMANDOZEILENARGUMENTE
429
14.1
ARGUMENTE
AN
DIE
HAUPTFUNKTION
UEBERGEBEN
.
430
14.2
ARGUMENTE
AUS
DER
KOMMANDOZEILE
AUSWERTEN
.
435
15
DYNAMISCHE
SPEICHERVERWALTUNG
441
15.1
DAS
SPEICHERKONZEPT
.
442
15.1.1
CODESPEICHER
.
442
15.1.2
DATEN-SPEICHER
.
443
15.1.3
STACK-SPEICHER
.
443
15.1.4
HEAP-SPEICHER
.
443
15.2
SPEICHERALLOKATION
MIT
MALLOC()
.
444
15.3
DAS
NULL-MYSTERIUM
.
447
15.3.1
NULL
FUER
FORTGESCHRITTENE
.
448
15.3.2
WAS
JETZT-NULL,
0
ODER
\0
.?
.
449
15.3.3
ZUSAMMENGEFASST
.
450
15.4
SPEICHERRESERVIERUNG
UND
IHRE
PROBLEME
.
451
15.5
FREE()
-
SPEICHER
WIEDER
FREIGEBEN
.
452
15.5.1
EINIGE
ERGAENZENDE
PUNKTE
ZUR
FREISPEICHERVERWALTUNG
.
456
15.5.2
PROZESSINTERNE
FREISPEICHERVERWALTUNG
.
457
15.6
DYNAMISCHE
ARRAYS
.
460
15.7
SPEICHER
DYNAMISCH
RESERVIEREN
MIT
REALLOC()
UND
CALLOC().
464
15.8
SPEICHER
VOM
STACK
ANFORDERN
MIT
ALLOCA()
(NICHT
ANSI
C)
.
468
15.9
ERGAENZENDE
ANMERKUNGEN
ZU
.
468
15.10
ZWEIDIMENSIONALE
DYNAMISCHE
ARRAYS
.
469
15.11
WAS
MUSS
MAN
TUN,
WENN
DIE
SPEICHERALLOKATION
FEHLSCHLAEGT?
.
472
15.11.1
SPEICHERANFORDERUNG
REDUZIEREN
.
473
15.11.2
SPEICHERANFORDERUNGEN
AUFTEILEN
.
474
15.11.3
EINEN
PUFFER
KONSTANTER
GROESSE
VERWENDEN
.
476
15.11.4
VOR DER
ALLOKATION
AUF
EINE
FESTPLATTE
ZWISCHENSPEICHERN
.
476
15.11.5
NUR
SO
VIEL
SPEICHER
ANFORDERN
WIE
NOETIG
.
476
16
STRUKTUREN
479
16.1
BENUTZERDEFINIERTE
TYPENDEFINITIONEN
MIT
TYPEDEF
.
479
16.2
WAS
IST
EIN
STRUKTURIERTER
DATENTYP,
UND
WOZU
BENOETIGT
MAN
IHN
IN
C?
.
479
16.3
STRUKTUREN
MIT
TYPEDEF
STRUCT
DEKLARIEREN
.
480
16.4
INITIALISIERUNG
UND
ZUGRIFF
AUF
STRUKTUREN
.
482
16.4.1
BESTIMMTE
ELEMENTE
INITIALISIEREN
.
487
16.5
STRUKTUREN
ALS
WERTUEBERGABE
AN
EINE
FUNKTION
BENUTZEN
.
491
16.6
STRUKTUREN
ALS
RUECKGABEWERT
EINER
FUNKTION
BENUTZEN
.
493
16.7
STRUKTUREN
MITEINANDER
VERGLEICHEN
.
495
16.8
ARRAYS
VON
STRUKTUREN
ERSTELLEN
.
497
16.9
STRUKTUREN
IN
STRUKTUREN
(NESTED
STRUCTURES)
.
504
16.10
WEITERE
SPEZIELLE
DATENTYPEN
.
514
16.10.1
UNIONS
.
515
16.10.2
DER
AUFZAEHLUNGSTYP
ENUM
.
521
16.10.3
WEITERE
TYPDEFINITIONEN
MIT
TYPEDEF
.
523
16.11
ATTRIBUTE
VON
STRUKTUREN
VERAENDERN
.
524
16.12
BITFELDER
.
528
16.13
DAS
.
535
17
EIN-/AUSGABE-FUNKTIONEN
537
17.1
WAS
IST
EINE
DATEI
AUS
SICHT
DER
PROGRAMMIERSPRACHE
C?
.
537
17.2
FORMATIERTE
UND
UNFORMATIERTE
EIN-/AUSGABE
.
538
17.3
HOEHERE
EIN-/AUSGABE-FUNKTIONEN
MIT
STDIO.H
.
538
17.3.1
EINE
DATEI
MIT
FOPEN
OEFFNEN
.
540
17.3.2
ZEICHENWEISE
LESEN
UND
SCHREIBEN
-
GETCHAR()
UND
.
546
17.3.3
ZEICHENWEISE
LESEN
UND
SCHREIBEN
-
PUTC()/FPUTC()
UND
GETC()/FGETC()
.
551
17.3.4
EINE
GEOEFFNETE
DATEI
MIT
FCLOSEQ
WIEDER
SCHLIESSEN
(WICHTIG!)
.
557
17.3.5
FORMATIERTE
EIN-/AUSGABEN
MIT
FPRINTF()
UND
FSCANF()
.
561
17.4
STREAMS
(EIN-/AUSGABE-DATENSTROEME)
.
566
17.4.1
WAS
UNTERSCHEIDET
EINEN
STREAM
VON
EINER
DATEI?
.
566
17.4.2
STANDARD-STREAMS
IN
C
.
567
17.4.3
FEHLERBEHANDLUNG
VON
STREAMS
-
FEOFQ,
FERRORQ
UND
CLEARERRQ
.
570
17.4.4
GELESENE
ZEICHEN
IN
DIE
EINGABE
ZURUECKSCHIEBEN
-
UNGETCO
.
572
17.4.5
DEN
TA
STATUR
PUFFER
LEEREN
-
FFL
USH
()
.
574
17.4.6
EINEN
STREAM
POSITIONIEREN
-
FSEEK(),
REWINDF)
UND
FTELI
()
.
575
17.4.7
EINEN
STREAM
POSITIONIEREN
-
FSETPOS(),
FGETPOSQ
.
579
17.4.8
ZEILENWEISE
EIN-/AUSGABE
IN
STREAMS
.
581
17.5
SPEZIELLE
EIN-/AUSGABE-FUNKTIONEN
FUER
STREAMS
.
595
17.5.1
BLOCKWEISE
LESEN
UND
SCHREIBEN
-
FREAD()
UND
FWRITE()
.
596
17.5.2
EINE
DATEI
ERNEUT
OEFFNEN
-
FREOPENQ
.
606
17.5.3
EINE
DATEI
LOESCHEN
ODER
UMBENENNEN
-
REMOVEQ
UND
RENAMEQ
.
608
17.5.4
PUFFERUNG
EINSTELLEN
-
SETBUF()
UND
SETVBUFQ
.
611
17.5.5
TEMPORAERE
DATEIEN
ERZEUGEN
-
TMPFILE()
UND
TMPNAMQ
.
618
17.5.6
FEHLER
BEI
DER
EIN-/AUSGABE
ABFANGEN
UND
BEHANDELN
.
623
17.5.7
FORMATIERT
IN
EINEN
STRING
SCHREIBEN
UND
FORMATIERT
AUS
EINEM
STRING
LESEN
-
SSCANFO
UND
SPRINTF()
.
627
17.5.8
EIN
FORTGESCHRITTENES
THEMA
.
633
17.6
LOW-LEVEL-DATEI-I/O-FUNKTIONEN
(NICHT
ANSI
C)
.
641
17.6.1
DATEIEN
OEFFNEN
MIT
OPEN()
.
642
17.6.2
DATEIEN
SCHLIESSEN
MIT
CLOSE()
.
649
17.6.3
DATEI
ERZEUGEN
-
CREAT()
.
650
17.6.4
SCHREIBEN
UND
LESEN
-
WRITEQ
UND
READQ
.
651
17.6.5
DEN
FILE-DESKRIPTOR
MIT
ISEEKQ
POSITIONIEREN
.
662
17.6.6
EINEN
FILE-DESKRIPTOR
VON
EINEM
STREAM
MIT
FILENOQ
ABLEITEN
.
663
17.6.7
STREAM
VON
FILE-DESKRIPTOR
MIT
FDOPENQ
ABLEITEN
.
664
17.6.8
GERAETEDATEIEN
UNTER
LINUX-ZUGRIFF
AUF
MAUS
UND
FRAMEBUFFER
.
666
18
ATTRIBUTE
VON
DATEIEN
UND
DAS
ARBEITEN
MIT
VERZEICHNISSEN
(NICHT
ANSI
C)
673
18.1
DIE
ATTRIBUTE
EINER
DATEI
MIT
STAT(
ERMITTELN
.
673
18.1.1
STAT()
-
ST_MODE
.
674
18.1.2
STAT()
-
ST_SIZE
.
680
18.1.3
STAT()
-
ST_ATIME,
ST_MTIME
UND
ST_CTIME
.
682
18.1.4
STAT()
-
ST_GID
UND
ST_UID
.
686
18.1.5
STAT()
-
ST_NLINK,
ST_INO
.
687
18.1.6
STAT()
-
ST_DEV,
ST_RDEV
.
688
18.2
PRUEFEN
DES
ZUGRIFFSRECHTS
MIT
ACCESS()
.
691
18.3
VERZEICHNISFUNKTIONEN
.
693
18.3.1
VERZEICHNIS
ERSTELLEN,
LOESCHEN
UND
WECHSELN
MIT
MKDIR(),
RMDIR
UND
CHDIR
.
693
18.3.2
IN
DAS
ARBEITSVERZEICHNIS
WECHSELN
MIT
GETCWDQ
.
699
18.3.3
VERZEICHNISSE
OEFFNEN,
LESEN
UND
SCHLIESSEN
-
OPENDIRQ,
READDIRO
UND
CLOSEDIRQ
.
701
19
ARBEITEN
MIT
VARIABEL
LANGEN
ARGUMENTLISTEN
-
STDARG.H
705
19.1
WAS
IST
EINE
ELLIPSE,
UND
WIE
WERDEN
MIT
IHR
PARAMETER
UEBERGEBEN?
.
705
19.2
WIE
KANN
MAN
MIT
STDARG.H
DIE
PARAMETERLISTE
ABFRAGEN?
.
706
19.3
MAKROS
IN
STDARG.H
-
VA_LIST,
VA_ARG,
VA_START
UND
VA_END
.
.
706
19.4
DIE
ARGUMENTLISTE
AM
ANFANG
ODER
ENDE
KENNZEICHNEN
.
707
19.5 VPRINTF(),
VSPRINTF(),
VFSPRINTF()
UND
VSNSPRINTF()
.
712
19.6
VARIADIC
MAKROS
-
_VA_ARGS_
.
716
20
ZEITROUTINEN
721
20.1
DIE
HEADERDATEI
TIME.H
.
721
20.1.1
KONSTANTEN
IN
DER
HEADERDATEI
TIME.H
.
723
20.1.2
DATUMS
UND
ZEITFUNKTIONEN
IN
TIME.H
.
723
20.2
LAUFZEITMESSUNG
(PROFILING)
.
734
20.3
BESONDERHEITEN
BEIM
RASPBERRY
PI
.
735
21
WEITERE
HEADERDATEIEN
UND
IHRE
FUNKTIONEN
(ANSI
C)
737
21.1
TESTMOEGLICHKEITEN
UND
FEHLERSUCHE
-
ASSERT.H
.
738
21.2
ZEICHENKLASSIFIZIERUNG
UND
UMWANDLUNG
CTYPE.H
.
739
21.3
MATHEMATISCHE
FUNKTIONEN
-
MATH.H ,
TGMATH.H
UND
COMPLEX.H
.
744
21.3.1
FUNKTIONEN
FUER
REELLE
UND
KOMPLEXE
GLEITPUNKTTYPEN
.
746
21.3.2
FUNKTIONEN
NUR
FUER
REELLE
GLEITPUNKTTYPEN
.
747
21.3.3
FUNKTIONEN
NUR
FUER
KOMPLEXE
GLEITPUNKTTYPEN
.
749
21.3.4
TYPENGENERISCHE
MAKROS
TGMATH.H
.
751
21.3.5
GLEITPUNKTWERTE
KLASSIFIZIEREN
.
752
21.3.6
MAKRO
ZUM
VERGLEICHEN
VON
REELLEN
ZAHLEN
.
753
21.3.7
ZUGRIFF
AUF
DIE
GLEITPUNKTUMGEBUNG- FENV.H
.
754
21.4
EINIGE
NUETZLICHE
FUNKTIONEN
IN
STDLIB.H
.
758
21.4.1
PROGRAMMBEENDIGUNG
-
EXIT(),
_EXIT(),
ATEXIT()
UND
ABORTQ
.
758
21.4.2
STRINGS
IN
NUMERISCHE
WERTE
KONVERTIEREN
.
762
21.4.3
BESSERE
ALTERNATIVE
-
STRINGS
IN
NUMERISCHE
WERTE
KONVERTIEREN
.
764
21.4.4
ZUFALLSZAHLEN
.
769
21.4.5
ABSOLUTWERTE,
DER
QUOTIENT
UND
DER
REST
VON
DIVISIONEN
.
771
21.4.6
SUCHEN
UND
SORTIEREN
-
QSORTQ
UND
BSEARCHQ
.
773
21.4.7
SYSTEMQ
.
776
21.5
LAENDERSPEZIFISCHE
EIGENHEITEN- LOCALE.H
.
778
21.6
NICHTLOKALE
SPRUENGE
-
SETJMP.H
.
782
21.7
EINIGE
NUETZLICHE
FUNKTIONEN
IN
SIGNAL.H
.
786
21.8
DIE
MEM.-FUNKTIONEN
ZUR
SPEICHERMANIPULATION
-
STRING.H
.
791
21.8.1
MEMCHRQ-SUCHE
NACH
EINZELNEN
ZEICHEN
.
792
21.8.2
MEMCMPO
-
BESTIMMTE
ANZAHL
VON
BYTES
VERGLEICHEN
.
792
21.8.3
MEMCPYO
-
BESTIMMTE
ANZAHL
VON
BYTES
KOPIEREN
.
793
21.8.4
MEMMOVEO
-
BESTIMMTE
ANZAHL
VON
BYTES
KOPIEREN
.
794
21.8.5
MEMSETQ
-
SPEICHERBEREICH
MIT
BESTIMMTEN
ZEICHEN
AUFFUELLEN
.
795
22
DYNAMISCHE
DATENSTRUKTUREN
797
22.1
LINEARE
LISTEN
(EINFACH
VERKETTETE
LISTEN)
.
797
22.1.1
ERSTES
ELEMENT
DER
LISTE
LOESCHEN
.
806
22.1.2
EIN
BELIEBIGES
ELEMENT
IN
DER
LISTE
LOESCHEN
.
807
22.1.3
ELEMENTE
DER
LISTE
AUSGEBEN
.
810
22.1.4
EINE
VOLLSTAENDIGE
LISTE
AUF
EINMAL
LOESCHEN
.
816
22.1.5
ELEMENT
IN
DIE
LISTE
EINFUEGEN
.
818
22.2
DOPPELT
VERKETTETE
LISTEN
.
832
22.3
STACKS
NACH
DEM
LIFO-(LAST-IN-FIRST-OUT-)PRINZIP.
849
22.4
QUEUES
NACH
DEM
FIFO-PRINZIP
.
870
22.5
DYNAMISCHES
ARRAY
MIT
FLEXIBLEN
ELEMENTEN
.
879
23
ALGORITHMEN
881
23.1
WAS
SIND
ALGORITHMEN?
.
881
23.2
EINIGE
EINFACHE
BEISPIELE
FUER
ALGORITHMEN
.
883
23.2.1
SORTIERALGORITHMEN
.
883
23.2.2
SUCHALGORITHMEN
.
911
23.2.3
PATTERN
MATCHING
.
941
23.2.4
PATTERN
MATCHING
DURCH
REGULAERE
AUSDRUECKE
.
952
23.2.5
BACKTRACKING
.
959
23.2.6
DER
WEG
DURCH
DEN
IRRGARTEN
.
959
23.3
KRYPTOGRAFISCHE
ALGORITHMEN
.
969
23.3.1
KRYPTOGRAFISCHES
HASHING
.
970
23.3.2
LINEARE
VERSCHLUESSELUNGSALGORITHMEN
.
982
23.3.3
PUBLIC-KEY-VERFAHREN
.
1010
24
MYSQL
UND
C
1027
24.1
AUFBAU
EINES
DATENBANKSYSTEMS
.
1027
24.1.1
WARUM
WURDEN
DATENBANKSYSTEME
(DBS)
ENTWICKELT?
.
1027
24.1.2
DAS
DATENBANK-MANAGEMENT-SYSTEM
(DBMS)
.
1028
24.1.3
RELATIONALE
DATENBANKEN
.
1031
24.1.4
MIT
C
EIGENE
CLIENTS
FUER
SQL
ENTWICKELN
MITHILFE
DER
ODBC-API
.
1032
24.2
MYSQL
INSTALLIEREN
.
1033
24.2.1
LINUX
.
1033
24.2.2
WINDOWS
.
1034
24.2.3
DEN
CLIENT
MYSQL
STARTEN
.
1035
24.3
CRASHKURS
SQL
.
1037
24.3.1
WAS
IST
SQL?
.
1037
24.3.2
DIE
DATENTYPEN
VON
.
1037
24.3.3
EINE
DATENBANK
ERZEUGEN
.
1040
24.3.4
EINE
DATENBANK
LOESCHEN
.
1041
24.3.5
DIE
DATENBANK
WECHSELN
.
1042
24.3.6
EINE
TABELLE
ERSTELLEN
.
1042
24.3.7
EINE
TABELLE
ANZEIGEN
.
1043
24.3.8
TABELLENDEFINITION
UEBERPRUEFEN
.
1043
24.3.9
TABELLEN
LOESCHEN
.
1043
24.3.10
EIN
BACKUP
ERSTELLEN
.
1044
24.3.11
DIE
STRUKTUR
EINER
TABELLE
AENDERN
.
1044
24.3.12
EINZELNE
DATENSAETZE
HINZUFUEGEN
.
1045
24.3.13
BESTIMMTE
DATENSAETZE
AUSWAEHLEN
.
1045
24.3.14
EIN
FORTGESCHRITTENES
SZENARIO
.
1046
24.3.15
DATENSAETZE
LOESCHEN
.
1048
24.3.16
DATENSATZ
AENDERN
.
1048
24.3.17
ZUSAETZLICHE
ZUGRIFFSRECHTE
IN
MYSQL
.
1049
24.3.18
UEBERSICHT
UEBER
EINIGE
SQL-KOMMANDOS
.
1050
24.4
DIE
MYSQL-C-API
.
1052
24.4.1
GRUNDLAGEN
ZUR
PROGRAMMIERUNG
EINES
MYSQL-CLIENTS
.
1052
24.4.2
CLIENT-PROGRAMM
MIT
DEM
GCC
UNTER
LINUX
UND
DEM
CYGWIN-GCC-COMPILER
UNTER
WINDOWS
.
1053
24.4.3
MYSQL
CLIENT-PROGRAMME
MIT
DEM
VC++
COMPILER
UND
DEM
BORLAND
FREEWARE
COMPILER
.
1054
24.4.4
PELLES
C
.
1055
24.4.5
TROUBLESHOOTING
.
1056
24.4.6
DAS
ERSTE
CLIENT-PROGRAMM
-
VERBINDUNG
MIT
DEM
MYSQL-SERVERHERSTELLEN
.
1056
24.4.7
MYSQL-KOMMANDOZEILEN-OPTIONEN
.
1061
24.4.8
ANFRAGE
AN
DEN
SERVER
.
1064
24.5
MYSQL
UND
C
MIT
CGI
.
1083
24.5.1
HTML-EINGABEFORMULAR
.
1083
24.5.2
DIE
CGI-ANWENDUNG
ADD_DB.CGI
.
1085
24.5.3
DIE
CGI-ANWENDUNG
SEARCH_DB.CGI
.
1092
24.6
FUNKTIONSUEBERSICHT
.
1101
24.7
DATENTYPENUEBERSICHT
DER
C-API
.
1105
24.8
WEITERFUEHRENDE
LITERATUR
ZU
DATENBANKEN
.
1105
25
NETZWERKPROGRAMMIERUNG
UND
CROSS-PLATTFORM-ENTWICKLUNG
1107
25.1
BEGRIFFE
ZUR
NETZWERKTECHNIK
.
1107
25.1.1
ETHERNET-FRAMES
.
1108
25.1.2
IP-ADRESSEN
.
1109
25.1.3
PORTNUMMERN
.
1111
25.1.4
HOST-UND
DOMAINNAMEN
.
1112
25.1.5
NAMESERVER
.
1112
25.1.6
DAS
IP-PROTOKOLL
.
1113
25.1.7
TCP
UND
UDP
.
1113
25.2
WAS
SIND
SOCKETS
UND
WIE
LEGT
MAN
SIE
IN
C
AN?
.
1114
25.3
HEADERDATEIEN
FUER
DIE
NETZWERKPROGRAMMIERUNG
.
1115
25.3.1
LINUX
.
1115
25.3.2
WINDOWS
.
1115
25.4
DAS
CLIENT-SERVER-PRINZIP.
1118
25.5
ERSTELLEN
EINER
CLIENT-ANWENDUNG
.
1120
25.5.1
SOCKET()
-
ERZEUGEN
EINES
KOMMUNIKATIONSENDPUNKTES
.
1120
25.5.2
CONNECTQ
-
EIN
CLIENT
STELLT
EINE
VERBINDUNG
ZUM
SERVER
HER
.
1122
25.5.3
SENDEN
UND
EMPFANGEN
VON
DATEN
.
1127
25.5.4
CLOSEQ
UND
.
1130
25.6
ERSTELLEN
EINER
SERVER-ANWENDUNG
.
1130
25.6.1
BIND
()
-
FESTLEGEN
EINER
ADRESSE
AUS
DEM
NAMENSRAUM
.
1130
25.6.2
IISTEN
()
-
WARTESCHLANGE
FUER
EINGEHENDE
VERBINDUNGEN
EINRICHTEN
.
1132
25.6.3
ACCEPTQ
UND
DIE
SERVER-HAUPTSCHLEIFE
.
1133
25.7
EINEINFACHERTCP-ECHO-SERVER.
1135
25.7.1
DER
CLIENT
.
1136
25.7.2
DER
SERVER
.
1139
25.8
CROSS-PLATTFORM-DEVELOPMENT.
1143
25.8.1
ABSTRACTION
LAYER
.
1143
25.8.2
HEADERDATEI
FUER
LINUX
.
1144
25.8.3
LINUX-QUELLCODEDATEI
.
1145
25.8.4
HEADERDATEI
FUER
WINDOWS
.
1148
25.8.5
WINDOWS-QUELLCODEDATEI
.
1149
25.8.6
ALL
TOGETHER
-
DIE
MAIN()-FUNKTIONEN
.
1153
25.8.7
EIN
UDP-BEISPIEL
.
1156
25.8.8
MEHRERE
CLIENTS
GLEICHZEITIG
BEHANDELN
.
1159
25.9
WEITERE
ANMERKUNGEN
ZUR
NETZWERKPROGRAMMIERUNG
UND
LITERATUREMPFEHLUNGEN
.
1166
25.9.1
DAS
DATENFORMAT
.
1166
25.9.2
DER
PUFFER
.
1167
25.9.3
PORTABILITAET
.
1168
25.9.4
VON
IPV4
NACH
IPV6
.
1168
25.9.5
RFC-DOKUMENTE
(REQUEST
FOR
COMMENTS)
.
1170
25.9.6
SICHERHEIT
.
1170
25.9.7
LITERATUREMPFEHLUNGEN
.
1171
26
PARALLELES
RECHNEN
1173
26.1
WAS
IST
MULTITASKING
UND
WIE
WIRD
ES
REALISIERT?.
1173
26.2
BRAUCHT
MAN
SPEZIELLE
PROZESSOREN
FUER
MULTITASKING?
.
1174
26.2.1
SINGLE-PROZESSOR-SYSTEME
.
1175
26.2.2
HYPERTHREADING
.
1176
26.3
BRAUCHT
MAN
SPEZIELLE
MULTITASKING-BETRIEBSSYSTEME?.
1177
26.4
PROGRAMMIERTECHNIKEN
DER
PARALLELISIERUNG.
1177
26.4.1
AUTOMATISCHE
PARALLELISIERUNG
.
1177
26.4.2
HALBAUTOMATISCHE
PARALLELISIERUNG
.
1178
26.4.3
ECHTE
PARALLELISIERUNG
.
1178
26.5
VOM
PROZESS
ZUM
THREAD
.
1179
26.6
MIT
POSIX-THREADS
PROGRAMMIEREN
.
1182
26.6.1
EIN
SERIELLES
BEISPIEL
.
1182
26.6.2
DAS
GRUNDGERUEST
FUER
EIN
PROGRAMM
MIT
MEHREREN
THREADS
.
1184
26.6.3
ZUSAMMENFASSUNG
.
1190
27
SICHERES
PROGRAMMIEREN
1193
27.1
BUFFER
OVERFLOW
(SPEICHERUEBERLAUF)
.
1194
27.1.1
WAS
VERURSACHT
BUFFER
OVERFLOWS?
.
1194
27.2
WARUM
SIND
BUFFER
OVERFLOWS
KRITISCH
FUER
DIE
SICHERHEIT?.
1195
27.2.1
SPEICHERVERWALTUNG
VON
PROGRAMMEN
.
1196
27.2.2
DER
STACK
FRAME
.
1197
27.2.3
MANIPULATION
DER
RUECKSPRUNGADRESSE
.
1198
27.3 WIE
MAN
BUFFER
OVERFLOWS
VERMEIDET
.
1202
27.3.1
UNSICHERES
EINLESEN
VON
EINGABE-STREAMS
.
1202
27.3.2
UNSICHERE
FUNKTIONEN
ZUR
STRINGBEARBEITUNG
.
1203
27.3.3
UNSICHERE
FUNKTIONEN
ZUR
BILDSCHIRMAUSGABE
.
1203
27.3.4
WEITERE
UNSICHERE
FUNKTIONEN
IM
UEBERBLICK
.
1204
27.4
GEGENMASSNAHMEN
ZUM
BUFFER
OVERFLOW,
WENN
DAS
PROGRAMM
FERTIG
IST
.
1205
27.4.1
PROGRAMME
UND
TOOLS
ZUM
BUFFER
OVERFLOW
.
1208
27.4.2
AUSBLICK
.
1209
27.5
STACK
OVERFLOW
(STAPELUEBERLAUF)
.
1210
27.6
WAS
VERURSACHT
STACK
OVERFLOWS?
.
1210
27.7 WARUM
IST
EIN
STAPELUEBERLAUF
KRITISCH
FUER
DIE
SICHERHEIT?
.
1210
27.8
WIE
MAN
STACK
OVERFLOWS
VERHINDERT
.
1211
27.9
MEMORY
LEAKS
(SPEICHERLECKS)
.
1212
27.10
BIBLIOTHEKEN
UND
TOOLS
ZU
MEMORY
LEAKS
.
1216
27.10.1
CCMALLOC
.
1216
27.10.2
DBMALLOC
.
1216
27.10.3
MPATROL
.
1216
27.11
TIPPS
ZU
SICHERHEITSPROBLEMEN.
1217
28
WIE
GEHT
'
S
JETZT
WEITER?
1219
28.1
GUI-PROGRAMMIERUNG
-
GRAFISCHE
OBERFLAECHEN
.
1220
28.1.1
LOW-LEVEL-GRAFIKPROGRAMMIERUNG
.
1220
28.1.2
HIGH-LEVEL-GRAFIKPROGRAMMIERUNG
.
1221
28.1.3
RAD-TOOLS
.
1222
28.1.4
MULTIMEDIA-GRAFIKPROGRAMMIERUNG
.
1223
28.2
GRAFIKPROGRAMMIERUNG
UNTER
WINDOWS
.
1223
28.2.1
IN
DIE
WINDOWS-KONSOLE
ZEICHNEN
.
1224
28.2.2
DIE
METHODE
BITBLT
.
1227
28.2.3
GRAFIKPROGRAMMIERUNG
UNTER
LINUX
(BEISPIEL
RASPBERRY
PI)
.
1231
28.2.4
DIE
FRAMEBUFFER-GERAETEDATEI
.
1231
28.2.5
IN
DEN
FRAMEBUFFER
ZEICHNEN
.
1232
28.2.6
DEN
BILDSCHIRMINHALT
SCHNELL
AUFFRISCHEN
.
1233
28.2.7
EIN
PAAR
GRAFIKPRIMITIVE
.
1236
28.2.8
WEITERFUEHRENDE
LITERATUR
ZUM
THEMA
GRAFIKPROGRAMMIERUNG
.
1239
ANHANG
1241
A
OPERATOREN
.
1241
A.L
RANGFOLGE
DER
OPERATOREN
.
1241
A.2
ASCII-CODE-TABELLE
.
1243
A.3
RESERVIERTE
SCHLUESSELWOERTER
IN
C
.
1244
A.4
STANDARD-HEADERDATEIEN
DER
ANSI-C-BIBLIOTHEK
.
1245
INDEX
.
1247 |
adam_txt |
AUF
EINEN
BLICK
1
EINSTIEG
IN
C
.
27
2
EINE
GUENSTIGE
PROGRAMMIERPLATTFORM-DER
RASPBERRY
PI
.
49
3
DAS
ERSTE
PROGRAMM
.
69
4
GRUNDLAGEN
.
77
5
BASISDATENTYPEN
.
91
6
FORMATIERTE
EIN-/AUSGABE
MIT
SCANF()
UND
PRINTFQ
.
145
7
OPERATOREN
.
159
8
TYPUMWANDLUNG
.
179
9
KONTROLLSTRUKTUREN
.
187
10
FUNKTIONEN
.
233
11
PRAEPROZESSOR-DIREKTIVEN
.
281
12
ARRAYS
.
307
13
ZEIGER
(POINTER)
.
369
14
KOMMANDOZEILENARGUMENTE
.
429
15
DYNAMISCHE
SPEICHERVERWALTUNG
.
441
16
STRUKTUREN
.
479
17
EIN-/AUSGABE-FUNKTIONEN
.
537
18
ATTRIBUTE
VON
DATEIEN
UND
DAS
ARBEITEN
MIT
VERZEICHNISSEN
(NICHT
ANSIC)
.
673
19
ARBEITEN
MIT
VARIABEL
LANGEN
ARGUMENTLISTEN
-
STDARG.H
.
705
20
ZEITROUTINEN
.
721
21
WEITERE
HEADERDATEIEN
UND
IHRE
FUNKTIONEN
(ANSI
C)
.
737
22
DYNAMISCHE
DATENSTRUKTUREN
.
797
23
ALGORITHMEN
.
881
24
MYSQL
UND
C
.
1027
25
NETZWERKPROGRAMMIERUNG
UND
CROSS-PLATTFORM-ENTWICKLUNG
.
1107
26 PARALLELES
RECHNEN
.1173
27
SICHERES
PROGRAMMIEREN
.1193
28
WIE
GEHT
'
S
JETZT
WEITER?
.
1219
INHALT
VORWORT
.
25
1
EINSTIEG
IN
C
27
1.1
UEBERSICHT
ZU
C
.
27
1.2
DER
ANSI-C-STANDARD
.
29
1.2.1
WELCHER
C-STANDARD
WIRD
IN
DIESEM
BUCH
VERWENDET?
.
31
1.2.2
DER
VORTEIL
DES
ANSI-C-STANDARDS
.
32
1.3
DER
POSIX-STANDARD
.
32
1.4
VOR
UND
NACHTEILE
DER
PROGRAMMIERSPRACHE
C
.
33
1.5
C
IN
DIESEM
BUCH.
34
1.6
WAS
BENOETIGEN
SIE
FUER
C?
.
35
1.6.1
TEXTEDITOR
.
35
1.6.2
COMPILER
.
35
1.6.3
ALL
IN
ONE-DIE
ENTWICKLUNGSUMGEBUNG
.
36
1.7
WELCHER
COMPILER
UND
WELCHES
BETRIEBSSYSTEM?
.
37
1.8
UNTERSCHIEDE
ZWISCHEN
WINDOWS
UND
LINUX
.
38
1.9
EINE
PROGRAMMIERUMGEBUNG
EINRICHTEN
AM
BEISPIEL
VON
PELLES
C
8.00
FUER
WINDOWS
.
38
1.9.1
PELLES
C
INSTALLIEREN
.
39
1.9.2
EIN
EINFACHES
C-PROJEKT
MIT
PELLES
C
ANLEGEN
.
43
1.10
EINE
PROGRAMMIERUMGEBUNG
EINRICHTEN
-
NANO/GCC
FUER
LINUX
.
47
2
EINE
GUENSTIGE
PROGRAMMIERPLATTFORM
-
DER
RASPBERRY
PI
49
2.1
WAS
GENAU
IST
DER
RASPBERRY
PI?
.
50
2.1.1
DIE
HARDWARE
DES
RASPBERRY
PI
.
50
2.1.2
WELCHE
BETRIEBSSYSTEME
GIBT
ES
FUER
DEN
RASPBERRY
PI?
.
52
2.2
INSTALLATION
EINES
LINUX-BETRIEBSSYSTEMS
AM
BEISPIEL
VON
RASPBERRY
PI
OS
.
54
2.2.1
WAS
GENAU
IST
RASPBERRY
PI
OS,
UND
WAS
GENAU
IST
DEBIAN?
.
54
2.2.2
RASPBERRY
PI
OS
AUS
DEM
INTERNET
HERUNTERLADEN
.
55
2.2.3
DAS
RASPBERRY
PI
OS
INSTALLIEREN
.
57
2.2.4
DEN
PI
MIT
DER
GRUNDKONFIGURATION
STARTEN
.
60
2.2.5
WIE
OFT
BENOETIGEN
SIE
UPDATES,
UND
WIE
GEHEN
SIE
VOR?
.
61
2.3
DIE
KONFIGURATION
DES
RASPBERRY
PI
IM
DETAIL
.
63
2.4
DAS
TOOL
RASPI-CONFIG
.
63
2.4.1
DAS
TOOL
RASPI-CONFIG
IM
DETAIL
.
64
3
DAS
ERSTE
PROGRAMM
69
3.1
WAS
LEISTET
DER
EDITOR?
.
70
3.2
WAS
LEISTET
DER
COMPILER?
.
70
3.3
WAS
SIND
INCLUDE-DATEIEN,
UND
WOZU
BENOETIGT
MAN
SIE?.
71
3.4
DAS
ERSTE
PROGRAMM
-
DIE
AUSGABE
EINES
TEXTES
IN
DER
KONSOLE
.
71
3.5
DAS
HALLO-WELT-PROGRAMM
IM
DETAIL
.
72
3.6
WIE
KOMPILIERT
MAN
EIN
PROGRAMM
UND
FUEHRT
ES
ANSCHLIESSEND
AUS?
.
75
4
GRUNDLAGEN
77
4.1
SYMBOLE
.
77
4.1.1
BEZEICHNER
.
77
4.1.2
SCHLUESSELWOERTER
.
78
4.1.3
LITERALE
.
78
4.1.4
EINFACHE
BEGRENZER
.
80
4.1.5
KOMMENTARE
.
81
4.2
ZEICHENSAETZE
.
84
4.2.1
BASIS-ZEICHENSATZ
.
84
4.2.2
AUSFUEHRUNGSZEICHENSATZ
(STEUERZEICHEN)
.
85
4.2.3
TRIGRAPH-ZEICHEN
.
88
4.3
STRINGS
.
89
4.4
DAS
EINFUEHRUNGSBEISPIEL
MIT
STRINGS
.
90
5
BASISDATENTYPEN
91
5.1
WAS
IST
EIN
BYTE,
UND
WIE
WERDEN
ZAHLEN
IN
C
GESPEICHERT?.
91
5.2
WAS
IST
EINE
VARIABLE,
UND
WAS
IST
EIN
VARIABIENTYP?
.
92
5.3
WAS
IST
EIN
OPERAND?
.
93
5.4
WAS
IST
EIN
PARAMETER?
.
93
5.5
WIE
SPEICHERT
EIN
PROZESSOR
VARIABLEN,
PARAMETER
UND
OPERANDEN?.
93
5.6
WAS
SIND
SPEICHERADRESSEN,
UND
WARUM
SIND
SIE
WICHTIG
FUER
C?
.
93
5.7
DEKLARATION
UND
DEFINITION
VON
VARIABLEN
.
94
5.8
ARRAY-DATENTYPEN
(DATENFELDER)
.
96
5.9
STANDARD-DATENTYPEN
.
96
5.9.1
DER
DATENTYP
INT
(INTEGER),
STANDARDGROESSE
2
BYTE
.
97
5.9.2
VERWENDUNG
DES
DATENTYPS
INT
.
98
5.9.3
DER
DATENTYP
LONG,
STANDARDGROESSE
4
BYTE
.
101
5.9.4
DER
DATENTYP
LONG
LONG,
STANDARDGROESSE
8
BYTE
.
102
5.9.5
DER
DATENTYP
SHORT,
GROESSE
2
BYTE
.
102
5.10
GANZZAHLIGE
TYPEN
MIT
VORGEGEBENER
BREITE
-
STDINT.H
.
103
5.10.1
INTTYPES.H
(AB
C99)
.
105
5.11
DIE
GLEITPUNKTTYPEN
FLOAT
UND
DOUBLE
.
107
5.11.1
GLEITPUNKTTYPEN
IM
DETAIL
.
109
5.11.2
FLOAT
IM
DETAIL
.
109
5.11.3
DOUBLE
IM
DETAIL
.
110
5.11.4
LONG
DOUBLE
.
110
5.11.5
LONG
LONG
DOUBLE
.
111
5.11.6
EINIGES
ZU
N-STELLIGER
GENAUIGKEIT
.
111
5.11.7
NUMERISCHE
GLEITPUNKTPROBLEME
.
113
5.12
KOMPLEXE
GLEITPUNKTTYPEN
-
COMPLEX.H
.
115
5.13
DER
DATENTYP
CHAR,
STANDARDGROESSE
1
BYTE
.
117
5.14
NATIONALE
CONTRA
INTERNATIONALE
ZEICHENSAETZE
.
123
5.14.1
DER
BREITZEICHEN-TYP
WCHAR_T,
GROESSE
2
BYTE
.
125
5.14.2
MULTIBYTE-ZEICHEN,
GROESSE
2,
4
ODER
8
BYTE
.
126
5.15
BOOLESCHE
WERTE
-
STDBOOL.H
.
127
5.16
DER
UNTERSCHIED
ZWISCHEN
VORZEICHENLOSEN
UND
VORZEICHENBEHAFTETEN
ZAHLEN
.
128
5.17
LIMITS
FUER
GANZZAHL
UND
GLEITPUNKTDATENTYPEN
.
130
5.18
DER
TYP
VOID
.
134
5.19
NUMERISCHE
KONSTANTEN
.
134
5.19.1
GANZZAHLKONSTANTEN
.
134
5.19.2
GLEITPUNKTKONSTANTEN
.
135
5.19.3
ZEICHENKONSTANTEN
.
135
5.19.4
STRINGLITERALE
(STRINGKONSTANTEN)
.
136
5.20
UMWANDLUNGSVORGABEN
FUER
FORMATIERTE
EIN-/AUSGABE
.
136
6
FORMATIERTE
EIN-/AUSGABE
MIT
SCANF()
UND
PRINTFQ
145
6.1
FORMATIERTE
EINGABE
MIT
SCANF()
.
145
6.1.1
DER
ADRESSOPERATOR
&
.
147
6.1.2
PROBLEME
UND
IHRE
BEHANDLUNG
MIT
SCANFQ
.
149
6.1.3
UEBERPRUEFEN
AUF
DAS
RICHTIGE
FORMAT
.
152
6.1.4
ZUSAMMENFASSUNG
ZU
SCANFQ
.
154
6.2
FORMATIERTE
AUSGABE
MIT
PRINTF()
.
155
7
OPERATOREN
159
7.1
WAS
SIND
OPERATOREN,
UND
WOZU
BENOETIGT
MAN
SIE
IN
C?
.
159
7.2
ARITHMETISCHE
OPERATOREN
.
160
7.2.1
DIVIDIEREN
VON
GANZZAHLEN
.
162
7.3
ERWEITERTE
DARSTELLUNG
ARITHMETISCHER
OPERATOREN
.
164
7.4
INKREMENT
UND
DEKREMENT-OPERATOREN
.
165
7.5
BIT-OPERATOREN
.
167
7.5.1
BITWEISES
UND
.
167
7.5.2
BITWEISES
ODER
.
169
7.5.3
BITWEISES
XOR
.
170
7.5.4
BITWEISES
KOMPLEMENT
.
171
7.5.5
LINKSVERSCHIEBUNG
.
171
7.5.6
RECHTSVERSCHIEBUNG
.
173
7.5.7
LINKSROTATION
(ERST
AB
C23)
.
173
7.5.8
RECHTSROTATION
(ERST
AB
C23)
.
173
7.5.9
REZEPT
FUER
FORTGESCHRITTENE
.
173
7.6
MAKROS
FUER
LOGISCHE
OPERATOREN
UND
BIT-OPERATOREN
-
ISO646.H
.
175
7.7
DER
SIZEOF-OPERATOR
.
176
7.7.1
C
VERSUS
C++
.
178
8
TYPUMWANDLUNG
179
8.1
AUTOMATISCHE
IMPLIZITE
DATENTYPUMWANDLUNG
DURCH
DEN
C-COMPILER
.
179
8.1.1
IMPLIZITES
CHAR
NACH
INT
.
180
8.1.2
IMPLIZITES
FLOAT
NACH
DOUBLE
.
180
8.1.3
IMPLIZITE
UMWANDLUNG
IN
EINEN
KOMPLEXEN
GLEITPUNKTTYP
.
180
8.1.4
UEBLICHE
ARITHMETISCHE
DATENTYPUMWANDLUNG
.
181
8.2
WOZU
BENOETIGT
MAN
DAS
BENUTZERDEFINIERTE
EXPLIZITE
TYPECASTING?.
184
8.3
EXPLIZITE
DATENTYPUMWANDLUNG
MIT
TYPECASTING
AN
BEISPIELEN
.
184
9
KONTROLLSTRUKTUREN
187
9.1
VERZWEIGUNGEN
MIT
DER
IF-BEDINGUNG
.
188
9.1.1
ANWEISUNGSBLOECKE
.
188
9.2
DIE
VERZWEIGUNG
MIT
EISE
IF
.
192
9.3
DIE
VERZWEIGUNG
MIT
EISE
.
194
9.4
DER
I-OPERATOR
(LOGISCHER
NOT-OPERATOR)
.
198
9.5
LOGISCHES
UND
(&&)
-
LOGISCHES
ODER
(||)
.
200
9.6
DER
BEDINGUNGSOPERATOR
?:
.
203
9.7
FALLUNTERSCHEIDUNG:
DIE
SWITCH-VERZWEIGUNG
.
205
9.7.1
DEFAULT
.
208
9.8
DIE
WHILE-SCHLEIFE
.
210
9.8.1
ENDLOSSCHLEIFEN
MIT
WHILE
.
,
.
212
9.8.2
FEHLERVERMEIDUNG
BEI
WHILE-SCHLEIFEN
.
213
9.9
DIE
DO
WHILE-SCHLEIFE
.
214
9.10
DIE
FOR-SCHLEIFE
.
219
9.10.1
EINSATZMOEGLICHKEITEN
DER
FOR-SCHLEIFE
.
222
9.11
KONTROLLIERTER
AUSSTIEG
AUS
SCHLEIFEN
MIT
BREAK
.
227
9.11.1
CONTINUE
.
227
9.11.2
BREAK
.
229
9.12
DIREKTE
SPRUENGE
MIT
GOTO
.
229
9.13
EINIGE
ANMERKUNGEN
ZUM
NOTATIONSSTIL,
EHE
SIE
WEITERLESEN
.
229
9.14
EINIGE
ANMERKUNGEN
ZU
EINEM
GUTEN
PROGRAMMIERSTIL
.
230
10
FUNKTIONEN
233
10.1
WAS
SIND
FUNKTIONEN?
.
233
10.2
WOZU
DIENEN
FUNKTIONEN?
.
234
10.3
DEFINITION
VON
FUNKTIONEN
.
234
10.4
FUNKTIONSAUFRUF
.
235
10.5
FUNKTIONSDEKLARATION
.
237
10.6
LOKALE
VARIABLEN
.
239
10.7
GLOBALE
VARIABLEN
.
241
10.8
STATISCHE
VARIABLEN
.
243
10.9
SCHLUESSELWOERTER
FUER
VARIABLEN
-
SPEICHERKLASSEN
.
244
10.9.1
AUTO
.
244
10.9.2
EXTERN
.
245
10.9.3
REGISTER
.
245
10.9.4
STATIC
.
245
10.10
TYP-QUALIFIZIERER
.
245
10.10.1
VOLATILE
.
246
10.10.2
CONST
.
246
10.11
GELTUNGSBEREICH
VON
VARIABLEN
.
246
10.12
SPEICHERKLASSEN-SPEZIFIZIERER
FUER
FUNKTIONEN
.
248
10.12.1
EXTERN
.
248
10.12.2
STATIC
.
248
10.12.3
VOLATILE
.
248
10.13
DATENAUSTAUSCH
ZWISCHEN
FUNKTIONEN
.
249
10.14
WERTUEBERGABE
AN
FUNKTIONEN
(CALL-BY-VALUE)
.
250
10.15
DER
RUECKGABEWERT
VON
FUNKTIONEN
.
254
10.16
DIE
HAUPTFUNKTION
.
256
10.17
WAS
BEDEUTET
DER
RUECKGABEWERT
BEIM
BEENDEN
EINES
PROGRAMMS?
.
258
10.17.1
PROGRAMMENDE
AUSWERTEN
.
259
10.18
FUNKTIONEN
DER
LAUFZEITBIBLIOTHEK
.
262
10.19
GETRENNTES
KOMPILIEREN
VON
QUELLDATEIEN
.
263
10.20
REKURSIVE
FUNKTIONEN
(REKURSION)
.
265
10.20.1
EXKURS:
STACK
.
265
10.20.2
REKURSIONEN
UND
DER
STACK
.
266
10.20.3
FAKULTAET
.
272
10.20.4
FIBONACCI-ZAHLEN
.
272
10.20.5
GROESSTER
GEMEINSAMER
TEILER
(GGT)
.
273
10.21
INLINE-FUNKTIONEN
.
278
11
PRAEPROZESSOR-DIREKTIVEN
281
11.1
MIT
#INCLUDE
DATEIEN
EINBINDEN
.
282
11.2
WICHTIGE
VORDEFINIERTE
HEADERDATEIEN
FUER
C
.
283
11.3
MAKROS
UND
KONSTANTEN
-
#DEFINE
.
285
11.3.1
SYMBOLISCHE
KONSTANTEN
MIT
#DEFINE
.
285
11.3.2
MAKROS
MIT
#DEFINE
.
290
11.4
BEDINGTE
KOMPILIERUNG
MIT
#IFDEF
.
294
11.5
VORDEFINIERTE
PRAEPROZESSOR-DIREKTIVEN
(ANSI
C)
.
300
11.6
EINEN
MAKROPARAMETER
DURCH
EINEN
STRING
ERSETZEN
.
302
11.7
#UNDEF
-
MAKRONAMEN
WIEDER
AUFHEBEN
.
304
11.8
FEHLERMELDUNGEN
AUSGEBEN
MIT
.
304
11.9
#PRAGMA
(GILT
NUR
FUER
WINDOWS)
.
306
12
ARRAYS
307
12.1
ARRAYS
DEKLARIEREN
.
308
12.2
INITIALISIERUNG
UND
ZUGRIFF
AUF
ARRAYS
.
309
12.2.1
GUELTIGKEITSBEREICH
VON
ARRAYS
.
315
12.3
ARRAYS
VERGLEICHEN
.
316
12.4
ANZAHL
DER
ELEMENTE
EINES
ARRAYS
ERMITTELN
.
318
12.5
UEBERGABE
VON
ARRAYS
AN
FUNKTIONEN
.
319
12.6
ARRAYS
AUS
FUNKTIONEN
ZURUECKGEBEN
.
322
12.7
PROGRAMMBEISPIEL
ZU
ARRAYS
.
323
12.8
ARRAY-WERTE
UEBER
DIE
TASTATUR
EINLESEN
.
327
12.9
MEHRDIMENSIONALE
ARRAYS
.
328
12.9.1
MEHRDIMENSIONALE
ARRAYS
INITIALISIEREN
.
328
12.9.2
UEBERGABE
VON
ZWEI
BZW.
MEHRDIMENSIONALEN
ARRAYS
AN
FUNKTIONEN
.
341
12.10
ARRAYS
IN
EINE
TABELLENKALKULATION
EINLESEN
(CSV-DATEIEN)
.
343
12.11
STRINGS/ZEICHENKETTEN
(CHAR-ARRAY)
.
345
12.11.1
VOM
STRING
ZUR
BINAERZAHL
.
349
12.12
EINLESEN
VON
STRINGS
.
352
12.13
DIE
STANDARD-BIBLIOTHEK
STRING.H
.
355
12.13.1
STRCATQ-STRINGS
ANEINANDERHAENGEN
.
355
12.13.2
STRCHRQ-EIN
ZEICHEN
IM
STRING
SUCHEN
.
356
12.13.3
STRCMPO-STRINGS
VERGLEICHEN
.
357
12.13.4
STRCPYO-EINEN
STRING
KOPIEREN
.
358
12.13.5
STRCSPN()-EINEN
TEILSTRING
ERMITTELN
.
359
12.13.6
STRLENQ
-
LAENGE
EINES
STRINGS
ERMITTELN
.
360
12.13.7
STRNCATQ
-
STRING
MIT
N
ZEICHEN
ANEINANDERHAENGEN
.
361
12.13.8
STRNCMPO
-
N
ZEICHEN
VON
ZWEI
STRINGS
MITEINANDER
VERGLEICHEN
361
12.13.9
STRNCPYO
-
STRING
MIT
N
ZEICHEN
KOPIEREN
.
362
12.13.10
STRPBRK()
-
NACH
DEM
AUFTRETEN
BESTIMMTER
ZEICHEN
SUCHEN
.
363
12.13.11
STRRCHRQ
-
DAS
LETZTE
AUFTRETEN
EINES
BESTIMMTEN
ZEICHENS
IM
STRING
SUCHEN
.
364
12.13.12
STRSPNO
-
DAS
ERSTE
AUFTRETEN
EINES
ZEICHENS,
DAS
NICHT
VORKOMMT
.
364
12.13.13
STRSTR()
-
EINEN
STRING
NACH
DEM
AUFTRETEN
EINES
TEILSTRINGS
DURCHSUCHEN
.
365
12.13.14
STRTOKQ
-
EINEN
STRING
ANHAND
BESTIMMTER
ZEICHEN
ZERLEGEN
.
366
13
ZEIGER
(POINTER)
369
13.1
DER
UNTERSCHIED
ZWISCHEN
EINER
NORMALEN
VARIABLEN
UND
EINEM
ZEIGER
.
369
13.2
ZEIGER
DEKLARIEREN
.
370
13.3
ZEIGER
INITIALISIEREN
.
371
13.3.1
SPEICHERGROESSE
VON
ZEIGERN
.
383
13.4
ZEIGERARITHMETIK
.
384
13.5
ZEIGER,
DIE
AUF
ANDERE
ZEIGER
VERWEISEN
.
385
13.5.1
SUBTRAKTIONZWEIERZEIGER
.
387
13.6
TYPENSICHERUNG
BEI
DER
DEREFERENZIERUNG
.
388
13.7
ZEIGER
ALS
FUNKTIONSPARAMETER
(CALL-BY-REFERENCE).
389
13.7.1
ZEIGER
ALS
RUECKGABEWERT
.
392
13.8
ARRAY
UND
ZEIGER
.
396
13.9
ZEIGERAUFSTRINGS
.
403
13.9.1
ZEIGER
AUF
KONSTANTE
OBJEKTE
(READ-ONLY-ZEIGER)
.
404
13.10
ZEIGER
AUF
ZEIGER
UND
STRINGTABELLEN
.
405
13.10.1
STRINGTABELLEN
.
407
13.11
ZEIGER
AUF
FUNKTIONEN
.
415
13.12
VOID-ZEIGER
.
420
13.13
AEQUIVALENZ
ZWISCHEN
ZEIGERN
UND
ARRAYS
.
424
13.14
DER
RESTRICT-ZEIGER
.
426
14
KOMMANDOZEILENARGUMENTE
429
14.1
ARGUMENTE
AN
DIE
HAUPTFUNKTION
UEBERGEBEN
.
430
14.2
ARGUMENTE
AUS
DER
KOMMANDOZEILE
AUSWERTEN
.
435
15
DYNAMISCHE
SPEICHERVERWALTUNG
441
15.1
DAS
SPEICHERKONZEPT
.
442
15.1.1
CODESPEICHER
.
442
15.1.2
DATEN-SPEICHER
.
443
15.1.3
STACK-SPEICHER
.
443
15.1.4
HEAP-SPEICHER
.
443
15.2
SPEICHERALLOKATION
MIT
MALLOC()
.
444
15.3
DAS
NULL-MYSTERIUM
.
447
15.3.1
NULL
FUER
FORTGESCHRITTENE
.
448
15.3.2
WAS
JETZT-NULL,
0
ODER
\0
.?
.
449
15.3.3
ZUSAMMENGEFASST
.
450
15.4
SPEICHERRESERVIERUNG
UND
IHRE
PROBLEME
.
451
15.5
FREE()
-
SPEICHER
WIEDER
FREIGEBEN
.
452
15.5.1
EINIGE
ERGAENZENDE
PUNKTE
ZUR
FREISPEICHERVERWALTUNG
.
456
15.5.2
PROZESSINTERNE
FREISPEICHERVERWALTUNG
.
457
15.6
DYNAMISCHE
ARRAYS
.
460
15.7
SPEICHER
DYNAMISCH
RESERVIEREN
MIT
REALLOC()
UND
CALLOC().
464
15.8
SPEICHER
VOM
STACK
ANFORDERN
MIT
ALLOCA()
(NICHT
ANSI
C)
.
468
15.9
ERGAENZENDE
ANMERKUNGEN
ZU
.
468
15.10
ZWEIDIMENSIONALE
DYNAMISCHE
ARRAYS
.
469
15.11
WAS
MUSS
MAN
TUN,
WENN
DIE
SPEICHERALLOKATION
FEHLSCHLAEGT?
.
472
15.11.1
SPEICHERANFORDERUNG
REDUZIEREN
.
473
15.11.2
SPEICHERANFORDERUNGEN
AUFTEILEN
.
474
15.11.3
EINEN
PUFFER
KONSTANTER
GROESSE
VERWENDEN
.
476
15.11.4
VOR DER
ALLOKATION
AUF
EINE
FESTPLATTE
ZWISCHENSPEICHERN
.
476
15.11.5
NUR
SO
VIEL
SPEICHER
ANFORDERN
WIE
NOETIG
.
476
16
STRUKTUREN
479
16.1
BENUTZERDEFINIERTE
TYPENDEFINITIONEN
MIT
TYPEDEF
.
479
16.2
WAS
IST
EIN
STRUKTURIERTER
DATENTYP,
UND
WOZU
BENOETIGT
MAN
IHN
IN
C?
.
479
16.3
STRUKTUREN
MIT
TYPEDEF
STRUCT
DEKLARIEREN
.
480
16.4
INITIALISIERUNG
UND
ZUGRIFF
AUF
STRUKTUREN
.
482
16.4.1
BESTIMMTE
ELEMENTE
INITIALISIEREN
.
487
16.5
STRUKTUREN
ALS
WERTUEBERGABE
AN
EINE
FUNKTION
BENUTZEN
.
491
16.6
STRUKTUREN
ALS
RUECKGABEWERT
EINER
FUNKTION
BENUTZEN
.
493
16.7
STRUKTUREN
MITEINANDER
VERGLEICHEN
.
495
16.8
ARRAYS
VON
STRUKTUREN
ERSTELLEN
.
497
16.9
STRUKTUREN
IN
STRUKTUREN
(NESTED
STRUCTURES)
.
504
16.10
WEITERE
SPEZIELLE
DATENTYPEN
.
514
16.10.1
UNIONS
.
515
16.10.2
DER
AUFZAEHLUNGSTYP
ENUM
.
521
16.10.3
WEITERE
TYPDEFINITIONEN
MIT
TYPEDEF
.
523
16.11
ATTRIBUTE
VON
STRUKTUREN
VERAENDERN
.
524
16.12
BITFELDER
.
528
16.13
DAS
.
535
17
EIN-/AUSGABE-FUNKTIONEN
537
17.1
WAS
IST
EINE
DATEI
AUS
SICHT
DER
PROGRAMMIERSPRACHE
C?
.
537
17.2
FORMATIERTE
UND
UNFORMATIERTE
EIN-/AUSGABE
.
538
17.3
HOEHERE
EIN-/AUSGABE-FUNKTIONEN
MIT
STDIO.H
.
538
17.3.1
EINE
DATEI
MIT
FOPEN
OEFFNEN
.
540
17.3.2
ZEICHENWEISE
LESEN
UND
SCHREIBEN
-
GETCHAR()
UND
.
546
17.3.3
ZEICHENWEISE
LESEN
UND
SCHREIBEN
-
PUTC()/FPUTC()
UND
GETC()/FGETC()
.
551
17.3.4
EINE
GEOEFFNETE
DATEI
MIT
FCLOSEQ
WIEDER
SCHLIESSEN
(WICHTIG!)
.
557
17.3.5
FORMATIERTE
EIN-/AUSGABEN
MIT
FPRINTF()
UND
FSCANF()
.
561
17.4
STREAMS
(EIN-/AUSGABE-DATENSTROEME)
.
566
17.4.1
WAS
UNTERSCHEIDET
EINEN
STREAM
VON
EINER
DATEI?
.
566
17.4.2
STANDARD-STREAMS
IN
C
.
567
17.4.3
FEHLERBEHANDLUNG
VON
STREAMS
-
FEOFQ,
FERRORQ
UND
CLEARERRQ
.
570
17.4.4
GELESENE
ZEICHEN
IN
DIE
EINGABE
ZURUECKSCHIEBEN
-
UNGETCO
.
572
17.4.5
DEN
TA
STATUR
PUFFER
LEEREN
-
FFL
USH
()
.
574
17.4.6
EINEN
STREAM
POSITIONIEREN
-
FSEEK(),
REWINDF)
UND
FTELI
()
.
575
17.4.7
EINEN
STREAM
POSITIONIEREN
-
FSETPOS(),
FGETPOSQ
.
579
17.4.8
ZEILENWEISE
EIN-/AUSGABE
IN
STREAMS
.
581
17.5
SPEZIELLE
EIN-/AUSGABE-FUNKTIONEN
FUER
STREAMS
.
595
17.5.1
BLOCKWEISE
LESEN
UND
SCHREIBEN
-
FREAD()
UND
FWRITE()
.
596
17.5.2
EINE
DATEI
ERNEUT
OEFFNEN
-
FREOPENQ
.
606
17.5.3
EINE
DATEI
LOESCHEN
ODER
UMBENENNEN
-
REMOVEQ
UND
RENAMEQ
.
608
17.5.4
PUFFERUNG
EINSTELLEN
-
SETBUF()
UND
SETVBUFQ
.
611
17.5.5
TEMPORAERE
DATEIEN
ERZEUGEN
-
TMPFILE()
UND
TMPNAMQ
.
618
17.5.6
FEHLER
BEI
DER
EIN-/AUSGABE
ABFANGEN
UND
BEHANDELN
.
623
17.5.7
FORMATIERT
IN
EINEN
STRING
SCHREIBEN
UND
FORMATIERT
AUS
EINEM
STRING
LESEN
-
SSCANFO
UND
SPRINTF()
.
627
17.5.8
EIN
FORTGESCHRITTENES
THEMA
.
633
17.6
LOW-LEVEL-DATEI-I/O-FUNKTIONEN
(NICHT
ANSI
C)
.
641
17.6.1
DATEIEN
OEFFNEN
MIT
OPEN()
.
642
17.6.2
DATEIEN
SCHLIESSEN
MIT
CLOSE()
.
649
17.6.3
DATEI
ERZEUGEN
-
CREAT()
.
650
17.6.4
SCHREIBEN
UND
LESEN
-
WRITEQ
UND
READQ
.
651
17.6.5
DEN
FILE-DESKRIPTOR
MIT
ISEEKQ
POSITIONIEREN
.
662
17.6.6
EINEN
FILE-DESKRIPTOR
VON
EINEM
STREAM
MIT
FILENOQ
ABLEITEN
.
663
17.6.7
STREAM
VON
FILE-DESKRIPTOR
MIT
FDOPENQ
ABLEITEN
.
664
17.6.8
GERAETEDATEIEN
UNTER
LINUX-ZUGRIFF
AUF
MAUS
UND
FRAMEBUFFER
.
666
18
ATTRIBUTE
VON
DATEIEN
UND
DAS
ARBEITEN
MIT
VERZEICHNISSEN
(NICHT
ANSI
C)
673
18.1
DIE
ATTRIBUTE
EINER
DATEI
MIT
STAT(
ERMITTELN
.
673
18.1.1
STAT()
-
ST_MODE
.
674
18.1.2
STAT()
-
ST_SIZE
.
680
18.1.3
STAT()
-
ST_ATIME,
ST_MTIME
UND
ST_CTIME
.
682
18.1.4
STAT()
-
ST_GID
UND
ST_UID
.
686
18.1.5
STAT()
-
ST_NLINK,
ST_INO
.
687
18.1.6
STAT()
-
ST_DEV,
ST_RDEV
.
688
18.2
PRUEFEN
DES
ZUGRIFFSRECHTS
MIT
ACCESS()
.
691
18.3
VERZEICHNISFUNKTIONEN
.
693
18.3.1
VERZEICHNIS
ERSTELLEN,
LOESCHEN
UND
WECHSELN
MIT
MKDIR(),
RMDIR
UND
CHDIR
.
693
18.3.2
IN
DAS
ARBEITSVERZEICHNIS
WECHSELN
MIT
GETCWDQ
.
699
18.3.3
VERZEICHNISSE
OEFFNEN,
LESEN
UND
SCHLIESSEN
-
OPENDIRQ,
READDIRO
UND
CLOSEDIRQ
.
701
19
ARBEITEN
MIT
VARIABEL
LANGEN
ARGUMENTLISTEN
-
STDARG.H
705
19.1
WAS
IST
EINE
ELLIPSE,
UND
WIE
WERDEN
MIT
IHR
PARAMETER
UEBERGEBEN?
.
705
19.2
WIE
KANN
MAN
MIT
STDARG.H
DIE
PARAMETERLISTE
ABFRAGEN?
.
706
19.3
MAKROS
IN
STDARG.H
-
VA_LIST,
VA_ARG,
VA_START
UND
VA_END
.
.
706
19.4
DIE
ARGUMENTLISTE
AM
ANFANG
ODER
ENDE
KENNZEICHNEN
.
707
19.5 VPRINTF(),
VSPRINTF(),
VFSPRINTF()
UND
VSNSPRINTF()
.
712
19.6
VARIADIC
MAKROS
-
_VA_ARGS_
.
716
20
ZEITROUTINEN
721
20.1
DIE
HEADERDATEI
TIME.H
.
721
20.1.1
KONSTANTEN
IN
DER
HEADERDATEI
TIME.H
.
723
20.1.2
DATUMS
UND
ZEITFUNKTIONEN
IN
TIME.H
.
723
20.2
LAUFZEITMESSUNG
(PROFILING)
.
734
20.3
BESONDERHEITEN
BEIM
RASPBERRY
PI
.
735
21
WEITERE
HEADERDATEIEN
UND
IHRE
FUNKTIONEN
(ANSI
C)
737
21.1
TESTMOEGLICHKEITEN
UND
FEHLERSUCHE
-
ASSERT.H
.
738
21.2
ZEICHENKLASSIFIZIERUNG
UND
UMWANDLUNG
CTYPE.H
.
739
21.3
MATHEMATISCHE
FUNKTIONEN
-
MATH.H ,
TGMATH.H
UND
COMPLEX.H
.
744
21.3.1
FUNKTIONEN
FUER
REELLE
UND
KOMPLEXE
GLEITPUNKTTYPEN
.
746
21.3.2
FUNKTIONEN
NUR
FUER
REELLE
GLEITPUNKTTYPEN
.
747
21.3.3
FUNKTIONEN
NUR
FUER
KOMPLEXE
GLEITPUNKTTYPEN
.
749
21.3.4
TYPENGENERISCHE
MAKROS
TGMATH.H
.
751
21.3.5
GLEITPUNKTWERTE
KLASSIFIZIEREN
.
752
21.3.6
MAKRO
ZUM
VERGLEICHEN
VON
REELLEN
ZAHLEN
.
753
21.3.7
ZUGRIFF
AUF
DIE
GLEITPUNKTUMGEBUNG- FENV.H
.
754
21.4
EINIGE
NUETZLICHE
FUNKTIONEN
IN
STDLIB.H
.
758
21.4.1
PROGRAMMBEENDIGUNG
-
EXIT(),
_EXIT(),
ATEXIT()
UND
ABORTQ
.
758
21.4.2
STRINGS
IN
NUMERISCHE
WERTE
KONVERTIEREN
.
762
21.4.3
BESSERE
ALTERNATIVE
-
STRINGS
IN
NUMERISCHE
WERTE
KONVERTIEREN
.
764
21.4.4
ZUFALLSZAHLEN
.
769
21.4.5
ABSOLUTWERTE,
DER
QUOTIENT
UND
DER
REST
VON
DIVISIONEN
.
771
21.4.6
SUCHEN
UND
SORTIEREN
-
QSORTQ
UND
BSEARCHQ
.
773
21.4.7
SYSTEMQ
.
776
21.5
LAENDERSPEZIFISCHE
EIGENHEITEN- LOCALE.H
.
778
21.6
NICHTLOKALE
SPRUENGE
-
SETJMP.H
.
782
21.7
EINIGE
NUETZLICHE
FUNKTIONEN
IN
SIGNAL.H
.
786
21.8
DIE
MEM.-FUNKTIONEN
ZUR
SPEICHERMANIPULATION
-
STRING.H
.
791
21.8.1
MEMCHRQ-SUCHE
NACH
EINZELNEN
ZEICHEN
.
792
21.8.2
MEMCMPO
-
BESTIMMTE
ANZAHL
VON
BYTES
VERGLEICHEN
.
792
21.8.3
MEMCPYO
-
BESTIMMTE
ANZAHL
VON
BYTES
KOPIEREN
.
793
21.8.4
MEMMOVEO
-
BESTIMMTE
ANZAHL
VON
BYTES
KOPIEREN
.
794
21.8.5
MEMSETQ
-
SPEICHERBEREICH
MIT
BESTIMMTEN
ZEICHEN
AUFFUELLEN
.
795
22
DYNAMISCHE
DATENSTRUKTUREN
797
22.1
LINEARE
LISTEN
(EINFACH
VERKETTETE
LISTEN)
.
797
22.1.1
ERSTES
ELEMENT
DER
LISTE
LOESCHEN
.
806
22.1.2
EIN
BELIEBIGES
ELEMENT
IN
DER
LISTE
LOESCHEN
.
807
22.1.3
ELEMENTE
DER
LISTE
AUSGEBEN
.
810
22.1.4
EINE
VOLLSTAENDIGE
LISTE
AUF
EINMAL
LOESCHEN
.
816
22.1.5
ELEMENT
IN
DIE
LISTE
EINFUEGEN
.
818
22.2
DOPPELT
VERKETTETE
LISTEN
.
832
22.3
STACKS
NACH
DEM
LIFO-(LAST-IN-FIRST-OUT-)PRINZIP.
849
22.4
QUEUES
NACH
DEM
FIFO-PRINZIP
.
870
22.5
DYNAMISCHES
ARRAY
MIT
FLEXIBLEN
ELEMENTEN
.
879
23
ALGORITHMEN
881
23.1
WAS
SIND
ALGORITHMEN?
.
881
23.2
EINIGE
EINFACHE
BEISPIELE
FUER
ALGORITHMEN
.
883
23.2.1
SORTIERALGORITHMEN
.
883
23.2.2
SUCHALGORITHMEN
.
911
23.2.3
PATTERN
MATCHING
.
941
23.2.4
PATTERN
MATCHING
DURCH
REGULAERE
AUSDRUECKE
.
952
23.2.5
BACKTRACKING
.
959
23.2.6
DER
WEG
DURCH
DEN
IRRGARTEN
.
959
23.3
KRYPTOGRAFISCHE
ALGORITHMEN
.
969
23.3.1
KRYPTOGRAFISCHES
HASHING
.
970
23.3.2
LINEARE
VERSCHLUESSELUNGSALGORITHMEN
.
982
23.3.3
PUBLIC-KEY-VERFAHREN
.
1010
24
MYSQL
UND
C
1027
24.1
AUFBAU
EINES
DATENBANKSYSTEMS
.
1027
24.1.1
WARUM
WURDEN
DATENBANKSYSTEME
(DBS)
ENTWICKELT?
.
1027
24.1.2
DAS
DATENBANK-MANAGEMENT-SYSTEM
(DBMS)
.
1028
24.1.3
RELATIONALE
DATENBANKEN
.
1031
24.1.4
MIT
C
EIGENE
CLIENTS
FUER
SQL
ENTWICKELN
MITHILFE
DER
ODBC-API
.
1032
24.2
MYSQL
INSTALLIEREN
.
1033
24.2.1
LINUX
.
1033
24.2.2
WINDOWS
.
1034
24.2.3
DEN
CLIENT
MYSQL
STARTEN
.
1035
24.3
CRASHKURS
SQL
.
1037
24.3.1
WAS
IST
SQL?
.
1037
24.3.2
DIE
DATENTYPEN
VON
.
1037
24.3.3
EINE
DATENBANK
ERZEUGEN
.
1040
24.3.4
EINE
DATENBANK
LOESCHEN
.
1041
24.3.5
DIE
DATENBANK
WECHSELN
.
1042
24.3.6
EINE
TABELLE
ERSTELLEN
.
1042
24.3.7
EINE
TABELLE
ANZEIGEN
.
1043
24.3.8
TABELLENDEFINITION
UEBERPRUEFEN
.
1043
24.3.9
TABELLEN
LOESCHEN
.
1043
24.3.10
EIN
BACKUP
ERSTELLEN
.
1044
24.3.11
DIE
STRUKTUR
EINER
TABELLE
AENDERN
.
1044
24.3.12
EINZELNE
DATENSAETZE
HINZUFUEGEN
.
1045
24.3.13
BESTIMMTE
DATENSAETZE
AUSWAEHLEN
.
1045
24.3.14
EIN
FORTGESCHRITTENES
SZENARIO
.
1046
24.3.15
DATENSAETZE
LOESCHEN
.
1048
24.3.16
DATENSATZ
AENDERN
.
1048
24.3.17
ZUSAETZLICHE
ZUGRIFFSRECHTE
IN
MYSQL
.
1049
24.3.18
UEBERSICHT
UEBER
EINIGE
SQL-KOMMANDOS
.
1050
24.4
DIE
MYSQL-C-API
.
1052
24.4.1
GRUNDLAGEN
ZUR
PROGRAMMIERUNG
EINES
MYSQL-CLIENTS
.
1052
24.4.2
CLIENT-PROGRAMM
MIT
DEM
GCC
UNTER
LINUX
UND
DEM
CYGWIN-GCC-COMPILER
UNTER
WINDOWS
.
1053
24.4.3
MYSQL
CLIENT-PROGRAMME
MIT
DEM
VC++
COMPILER
UND
DEM
BORLAND
FREEWARE
COMPILER
.
1054
24.4.4
PELLES
C
.
1055
24.4.5
TROUBLESHOOTING
.
1056
24.4.6
DAS
ERSTE
CLIENT-PROGRAMM
-
VERBINDUNG
MIT
DEM
MYSQL-SERVERHERSTELLEN
.
1056
24.4.7
MYSQL-KOMMANDOZEILEN-OPTIONEN
.
1061
24.4.8
ANFRAGE
AN
DEN
SERVER
.
1064
24.5
MYSQL
UND
C
MIT
CGI
.
1083
24.5.1
HTML-EINGABEFORMULAR
.
1083
24.5.2
DIE
CGI-ANWENDUNG
ADD_DB.CGI
.
1085
24.5.3
DIE
CGI-ANWENDUNG
SEARCH_DB.CGI
.
1092
24.6
FUNKTIONSUEBERSICHT
.
1101
24.7
DATENTYPENUEBERSICHT
DER
C-API
.
1105
24.8
WEITERFUEHRENDE
LITERATUR
ZU
DATENBANKEN
.
1105
25
NETZWERKPROGRAMMIERUNG
UND
CROSS-PLATTFORM-ENTWICKLUNG
1107
25.1
BEGRIFFE
ZUR
NETZWERKTECHNIK
.
1107
25.1.1
ETHERNET-FRAMES
.
1108
25.1.2
IP-ADRESSEN
.
1109
25.1.3
PORTNUMMERN
.
1111
25.1.4
HOST-UND
DOMAINNAMEN
.
1112
25.1.5
NAMESERVER
.
1112
25.1.6
DAS
IP-PROTOKOLL
.
1113
25.1.7
TCP
UND
UDP
.
1113
25.2
WAS
SIND
SOCKETS
UND
WIE
LEGT
MAN
SIE
IN
C
AN?
.
1114
25.3
HEADERDATEIEN
FUER
DIE
NETZWERKPROGRAMMIERUNG
.
1115
25.3.1
LINUX
.
1115
25.3.2
WINDOWS
.
1115
25.4
DAS
CLIENT-SERVER-PRINZIP.
1118
25.5
ERSTELLEN
EINER
CLIENT-ANWENDUNG
.
1120
25.5.1
SOCKET()
-
ERZEUGEN
EINES
KOMMUNIKATIONSENDPUNKTES
.
1120
25.5.2
CONNECTQ
-
EIN
CLIENT
STELLT
EINE
VERBINDUNG
ZUM
SERVER
HER
.
1122
25.5.3
SENDEN
UND
EMPFANGEN
VON
DATEN
.
1127
25.5.4
CLOSEQ
UND
.
1130
25.6
ERSTELLEN
EINER
SERVER-ANWENDUNG
.
1130
25.6.1
BIND
()
-
FESTLEGEN
EINER
ADRESSE
AUS
DEM
NAMENSRAUM
.
1130
25.6.2
IISTEN
()
-
WARTESCHLANGE
FUER
EINGEHENDE
VERBINDUNGEN
EINRICHTEN
.
1132
25.6.3
ACCEPTQ
UND
DIE
SERVER-HAUPTSCHLEIFE
.
1133
25.7
EINEINFACHERTCP-ECHO-SERVER.
1135
25.7.1
DER
CLIENT
.
1136
25.7.2
DER
SERVER
.
1139
25.8
CROSS-PLATTFORM-DEVELOPMENT.
1143
25.8.1
ABSTRACTION
LAYER
.
1143
25.8.2
HEADERDATEI
FUER
LINUX
.
1144
25.8.3
LINUX-QUELLCODEDATEI
.
1145
25.8.4
HEADERDATEI
FUER
WINDOWS
.
1148
25.8.5
WINDOWS-QUELLCODEDATEI
.
1149
25.8.6
ALL
TOGETHER
-
DIE
MAIN()-FUNKTIONEN
.
1153
25.8.7
EIN
UDP-BEISPIEL
.
1156
25.8.8
MEHRERE
CLIENTS
GLEICHZEITIG
BEHANDELN
.
1159
25.9
WEITERE
ANMERKUNGEN
ZUR
NETZWERKPROGRAMMIERUNG
UND
LITERATUREMPFEHLUNGEN
.
1166
25.9.1
DAS
DATENFORMAT
.
1166
25.9.2
DER
PUFFER
.
1167
25.9.3
PORTABILITAET
.
1168
25.9.4
VON
IPV4
NACH
IPV6
.
1168
25.9.5
RFC-DOKUMENTE
(REQUEST
FOR
COMMENTS)
.
1170
25.9.6
SICHERHEIT
.
1170
25.9.7
LITERATUREMPFEHLUNGEN
.
1171
26
PARALLELES
RECHNEN
1173
26.1
WAS
IST
MULTITASKING
UND
WIE
WIRD
ES
REALISIERT?.
1173
26.2
BRAUCHT
MAN
SPEZIELLE
PROZESSOREN
FUER
MULTITASKING?
.
1174
26.2.1
SINGLE-PROZESSOR-SYSTEME
.
1175
26.2.2
HYPERTHREADING
.
1176
26.3
BRAUCHT
MAN
SPEZIELLE
MULTITASKING-BETRIEBSSYSTEME?.
1177
26.4
PROGRAMMIERTECHNIKEN
DER
PARALLELISIERUNG.
1177
26.4.1
AUTOMATISCHE
PARALLELISIERUNG
.
1177
26.4.2
HALBAUTOMATISCHE
PARALLELISIERUNG
.
1178
26.4.3
ECHTE
PARALLELISIERUNG
.
1178
26.5
VOM
PROZESS
ZUM
THREAD
.
1179
26.6
MIT
POSIX-THREADS
PROGRAMMIEREN
.
1182
26.6.1
EIN
SERIELLES
BEISPIEL
.
1182
26.6.2
DAS
GRUNDGERUEST
FUER
EIN
PROGRAMM
MIT
MEHREREN
THREADS
.
1184
26.6.3
ZUSAMMENFASSUNG
.
1190
27
SICHERES
PROGRAMMIEREN
1193
27.1
BUFFER
OVERFLOW
(SPEICHERUEBERLAUF)
.
1194
27.1.1
WAS
VERURSACHT
BUFFER
OVERFLOWS?
.
1194
27.2
WARUM
SIND
BUFFER
OVERFLOWS
KRITISCH
FUER
DIE
SICHERHEIT?.
1195
27.2.1
SPEICHERVERWALTUNG
VON
PROGRAMMEN
.
1196
27.2.2
DER
STACK
FRAME
.
1197
27.2.3
MANIPULATION
DER
RUECKSPRUNGADRESSE
.
1198
27.3 WIE
MAN
BUFFER
OVERFLOWS
VERMEIDET
.
1202
27.3.1
UNSICHERES
EINLESEN
VON
EINGABE-STREAMS
.
1202
27.3.2
UNSICHERE
FUNKTIONEN
ZUR
STRINGBEARBEITUNG
.
1203
27.3.3
UNSICHERE
FUNKTIONEN
ZUR
BILDSCHIRMAUSGABE
.
1203
27.3.4
WEITERE
UNSICHERE
FUNKTIONEN
IM
UEBERBLICK
.
1204
27.4
GEGENMASSNAHMEN
ZUM
BUFFER
OVERFLOW,
WENN
DAS
PROGRAMM
FERTIG
IST
.
1205
27.4.1
PROGRAMME
UND
TOOLS
ZUM
BUFFER
OVERFLOW
.
1208
27.4.2
AUSBLICK
.
1209
27.5
STACK
OVERFLOW
(STAPELUEBERLAUF)
.
1210
27.6
WAS
VERURSACHT
STACK
OVERFLOWS?
.
1210
27.7 WARUM
IST
EIN
STAPELUEBERLAUF
KRITISCH
FUER
DIE
SICHERHEIT?
.
1210
27.8
WIE
MAN
STACK
OVERFLOWS
VERHINDERT
.
1211
27.9
MEMORY
LEAKS
(SPEICHERLECKS)
.
1212
27.10
BIBLIOTHEKEN
UND
TOOLS
ZU
MEMORY
LEAKS
.
1216
27.10.1
CCMALLOC
.
1216
27.10.2
DBMALLOC
.
1216
27.10.3
MPATROL
.
1216
27.11
TIPPS
ZU
SICHERHEITSPROBLEMEN.
1217
28
WIE
GEHT
'
S
JETZT
WEITER?
1219
28.1
GUI-PROGRAMMIERUNG
-
GRAFISCHE
OBERFLAECHEN
.
1220
28.1.1
LOW-LEVEL-GRAFIKPROGRAMMIERUNG
.
1220
28.1.2
HIGH-LEVEL-GRAFIKPROGRAMMIERUNG
.
1221
28.1.3
RAD-TOOLS
.
1222
28.1.4
MULTIMEDIA-GRAFIKPROGRAMMIERUNG
.
1223
28.2
GRAFIKPROGRAMMIERUNG
UNTER
WINDOWS
.
1223
28.2.1
IN
DIE
WINDOWS-KONSOLE
ZEICHNEN
.
1224
28.2.2
DIE
METHODE
BITBLT
.
1227
28.2.3
GRAFIKPROGRAMMIERUNG
UNTER
LINUX
(BEISPIEL
RASPBERRY
PI)
.
1231
28.2.4
DIE
FRAMEBUFFER-GERAETEDATEI
.
1231
28.2.5
IN
DEN
FRAMEBUFFER
ZEICHNEN
.
1232
28.2.6
DEN
BILDSCHIRMINHALT
SCHNELL
AUFFRISCHEN
.
1233
28.2.7
EIN
PAAR
GRAFIKPRIMITIVE
.
1236
28.2.8
WEITERFUEHRENDE
LITERATUR
ZUM
THEMA
GRAFIKPROGRAMMIERUNG
.
1239
ANHANG
1241
A
OPERATOREN
.
1241
A.L
RANGFOLGE
DER
OPERATOREN
.
1241
A.2
ASCII-CODE-TABELLE
.
1243
A.3
RESERVIERTE
SCHLUESSELWOERTER
IN
C
.
1244
A.4
STANDARD-HEADERDATEIEN
DER
ANSI-C-BIBLIOTHEK
.
1245
INDEX
.
1247 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Krooß, René Wolf, Jürgen 1974- |
author_GND | (DE-588)1211561577 (DE-588)132691256 |
author_facet | Krooß, René Wolf, Jürgen 1974- |
author_role | aut aut |
author_sort | Krooß, René |
author_variant | r k rk j w jw |
building | Verbundindex |
bvnumber | BV049015657 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)1389176951 (DE-599)DNB1278595791 |
dewey-full | 005.133 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.133 |
dewey-search | 005.133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 5., aktualisierte Auflage |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV049015657</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240718</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">230622s2023 gw a||| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">23,N04</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1278595791</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783836295048</subfield><subfield code="c">Hb.: EUR 49.90 (DE), EUR 51.30 (AT), CHF 63.90 (freier Preis)</subfield><subfield code="9">978-3-8362-9504-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3836295040</subfield><subfield code="9">3-8362-9504-0</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783836295048</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Bestellnummer: 459/09504</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1389176951</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1278595791</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-523</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-860</subfield><subfield code="a">DE-1043</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-573n</subfield><subfield code="a">DE-573</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">23/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="8">1\p</subfield><subfield code="a">004</subfield><subfield code="2">23sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Krooß, René</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1211561577</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C von A bis Z</subfield><subfield code="b">das umfassende Handbuch</subfield><subfield code="c">René Krooß, Jürgen Wolf</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">5., aktualisierte Auflage</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Bonn</subfield><subfield code="b">Rheinwerk Verlag</subfield><subfield code="c">2023</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1263 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield><subfield code="c">24 cm x 16.8 cm</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Rheinwerk Computing</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Titelzusatz auf dem Cover: aktuell zu C23, das Lehr- und Nachschlagewerk für Ausbildung und Praxis, für Einsteiger, Umsteiger und Profis geeignet, inkl. paralleler Programmierung, Kryptografie, dynamischer Speicherverwaltung, Raspberry Pi u.v.m.</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">ANSI C++</subfield><subfield code="0">(DE-588)4499937-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">ANSI C</subfield><subfield code="0">(DE-588)4233557-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++23</subfield><subfield code="0">(DE-588)1317339894</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C-Programmierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software-Entwicklung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Hand-Buch Bücher Wissen Tutorials Kurse Workshops Ausbildung Studium Seminare Beruf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C objektorientiert</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Algorithmen</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software-Entwickler</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C23</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4113195-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">ANSI C</subfield><subfield code="0">(DE-588)4233557-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">C++</subfield><subfield code="0">(DE-588)4193909-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">ANSI C++</subfield><subfield code="0">(DE-588)4499937-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">3\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">C++23</subfield><subfield code="0">(DE-588)1317339894</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2="1"><subfield code="a">ANSI C</subfield><subfield code="0">(DE-588)4233557-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Wolf, Jürgen</subfield><subfield code="d">1974-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)132691256</subfield><subfield code="4">aut</subfield></datafield><datafield tag="710" ind1="2" ind2=" "><subfield code="a">Rheinwerk Verlag</subfield><subfield code="0">(DE-588)1081738405</subfield><subfield code="4">pbl</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=a88b3b9431fa4f74b71299b706cb2fed&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034278639&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">vlb</subfield><subfield code="d">20230119</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#vlb</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-034278639</subfield></datafield></record></collection> |
id | DE-604.BV049015657 |
illustrated | Illustrated |
index_date | 2024-07-03T22:12:43Z |
indexdate | 2024-07-20T08:58:15Z |
institution | BVB |
institution_GND | (DE-588)1081738405 |
isbn | 9783836295048 3836295040 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-034278639 |
oclc_num | 1389176951 |
open_access_boolean | |
owner | DE-523 DE-29T DE-19 DE-BY-UBM DE-20 DE-706 DE-92 DE-1051 DE-B768 DE-860 DE-1043 DE-859 DE-573n DE-573 |
owner_facet | DE-523 DE-29T DE-19 DE-BY-UBM DE-20 DE-706 DE-92 DE-1051 DE-B768 DE-860 DE-1043 DE-859 DE-573n DE-573 |
physical | 1263 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm |
publishDate | 2023 |
publishDateSearch | 2023 |
publishDateSort | 2023 |
publisher | Rheinwerk Verlag |
record_format | marc |
series2 | Rheinwerk Computing |
spelling | Krooß, René Verfasser (DE-588)1211561577 aut C von A bis Z das umfassende Handbuch René Krooß, Jürgen Wolf 5., aktualisierte Auflage Bonn Rheinwerk Verlag 2023 1263 Seiten Illustrationen, Diagramme 24 cm x 16.8 cm txt rdacontent n rdamedia nc rdacarrier Rheinwerk Computing Titelzusatz auf dem Cover: aktuell zu C23, das Lehr- und Nachschlagewerk für Ausbildung und Praxis, für Einsteiger, Umsteiger und Profis geeignet, inkl. paralleler Programmierung, Kryptografie, dynamischer Speicherverwaltung, Raspberry Pi u.v.m. ANSI C++ (DE-588)4499937-9 gnd rswk-swf C Programmiersprache (DE-588)4113195-2 gnd rswk-swf ANSI C (DE-588)4233557-7 gnd rswk-swf C++23 (DE-588)1317339894 gnd rswk-swf C++ (DE-588)4193909-8 gnd rswk-swf C-Programmierung Software-Entwicklung Hand-Buch Bücher Wissen Tutorials Kurse Workshops Ausbildung Studium Seminare Beruf C objektorientiert Algorithmen Software-Entwickler C23 C Programmiersprache (DE-588)4113195-2 s ANSI C (DE-588)4233557-7 s DE-604 C++ (DE-588)4193909-8 s 2\p DE-604 ANSI C++ (DE-588)4499937-9 s 3\p DE-604 C++23 (DE-588)1317339894 s Wolf, Jürgen 1974- Verfasser (DE-588)132691256 aut Rheinwerk Verlag (DE-588)1081738405 pbl X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=a88b3b9431fa4f74b71299b706cb2fed&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034278639&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p vlb 20230119 DE-101 https://d-nb.info/provenance/plan#vlb 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 3\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Krooß, René Wolf, Jürgen 1974- C von A bis Z das umfassende Handbuch ANSI C++ (DE-588)4499937-9 gnd C Programmiersprache (DE-588)4113195-2 gnd ANSI C (DE-588)4233557-7 gnd C++23 (DE-588)1317339894 gnd C++ (DE-588)4193909-8 gnd |
subject_GND | (DE-588)4499937-9 (DE-588)4113195-2 (DE-588)4233557-7 (DE-588)1317339894 (DE-588)4193909-8 |
title | C von A bis Z das umfassende Handbuch |
title_auth | C von A bis Z das umfassende Handbuch |
title_exact_search | C von A bis Z das umfassende Handbuch |
title_exact_search_txtP | C von A bis Z das umfassende Handbuch |
title_full | C von A bis Z das umfassende Handbuch René Krooß, Jürgen Wolf |
title_fullStr | C von A bis Z das umfassende Handbuch René Krooß, Jürgen Wolf |
title_full_unstemmed | C von A bis Z das umfassende Handbuch René Krooß, Jürgen Wolf |
title_short | C von A bis Z |
title_sort | c von a bis z das umfassende handbuch |
title_sub | das umfassende Handbuch |
topic | ANSI C++ (DE-588)4499937-9 gnd C Programmiersprache (DE-588)4113195-2 gnd ANSI C (DE-588)4233557-7 gnd C++23 (DE-588)1317339894 gnd C++ (DE-588)4193909-8 gnd |
topic_facet | ANSI C++ C Programmiersprache ANSI C C++23 C++ |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=a88b3b9431fa4f74b71299b706cb2fed&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034278639&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT krooßrene cvonabiszdasumfassendehandbuch AT wolfjurgen cvonabiszdasumfassendehandbuch AT rheinwerkverlag cvonabiszdasumfassendehandbuch |