Dieser Teil von ManderC ist noch in Bearbeitung. Vorerst muss man sich mit einer rudimentären Auflistung begnügen. Man beachte dass diese Einträge während der frühen Programmier-Jahre des Autors entstanden und (momentan noch) teilweise unkorrekt sein können.
assert.h
Mittels assert kann eine Bedingung überprüft werden. Ist die Bedingung FALSE, so wird das Programm mit entsprechender Fehlermeldung abgebrochen.
void assert(int Bedingung)
Sicherstellung der Bedingung
ctype.h
Diese Funktionen geben true oder false zurück, je nachdem, ob das übergebene Ascii-Zeichen den Kriterien entspricht.
int isalnum(int Asc)
Alphanumerische Zeichen
int isalpha(int Asc)
Buchstaben a bis z und A bis Z
int iscntrl(int Asc)
Steuerzeichen 0x00 bis 0x1F und 0x7F
int isdigit(int Asc)
Ziffern 0 bis 9
int isgraph(int Asc)
Druckbare Zeichen (keine Leerzeichen)
int islower(int Asc)
Kleinbuchstaben a bis z
int isprint(int Asc)
Druckbare Zeichen 0x20 bis 0x7E
int ispunct(int Asc)
Interpunktionszeichen
int isspace(int Asc)
weisse Leerzeichen (0x09 bis 0x0D und 0x20)
int isupper(int Asc)
Grossbuchstaben A bis Z
int isxdigit(int Asc)
hexadezimale Ziffern 0 bis 9 und A bis F
Diese beiden Funktionen wandeln Buchstaben in ihr klein- bzw. gross-Pendant um.
int tolower(int Asc)
Umwandlung in Kleinbuchstaben
int toupper(int Asc)
Umwandlung in Grossbuchstaben
locale.h
Diese beiden Funktionen dienen der Anpassung der länderspezifischen Einstellungen. Sie werden hier nicht weiter erläutert.
struct lconv* localeconv(void)
char *setlocale(int, const char*)
math.h
double sin(double ang)
Sinus
double cos(double ang)
Cosinus
double tan(double ang)
Tangens
double asin(double val)
Arcussinus
double acos(double val)
Arcuscosinus
double atan(double val)
Arcustangens
double atan2(double x, double y)
Arcustangens von x/y
double sinh(double ang)
Sinus Hyperbolicus
double cosh(double ang)
Cosinus Hyperbolicus
double tanh(double ang)
Tangens Hyperbolicus
Winkel werden stets in rad angegeben.
double sqrt(double val)
Quadratwurzel
double pow(double bas, double exp)
Power, Potenzierung: bas^exp
double exp(double val)
Exponent
double ldexp(double val, int exp)
val*2^exp
double fabs(double val)
Betrag, Absolutwert
double ceil(double val)
Aufrunden
double floor(double val)
Abrunden
double fmod(double x, double y)
x modulo y
double log(double val)
log Basis e
double log10(double val)
log Basis 10
double frexp(double val, int* exp)
Mantisse und Exponent
double modf(double v1, double* v2)
Ganzzahl und Dezimalbruch
Die Funktionen frexp und modf geben je zwei Werte zurück, wobei der zweite mittels Übergabe durch Pointer zurückgegeben wird.
setjmp.h
Diese beiden Funktionen dienen der Zwischenspeicherung vom Programmstatus. Sie werden hier nicht weiter erläutert.
void longjmp(jmp_buf, int)
int setjmp(jmp_buf)
signal.h
Diese beiden Funktionen dienen der manuellen Interruptkontrolle. Sie werden hier nicht weiter erläutert.
int raise(int)
void signal(int, void*(int))(int)
stdarg.h
Diese drei Makros dienen der variablen Übergabe von Argumenten. Sie werden hier nicht weiter erläutert.
va_arg(va_list)
va_end(va_list)
va_start(va_list)
stdio.h
Diese Bibliothek enthält alle Funktionen, die für die Ein- und Ausgabe zuständig sind. Fast alle bedienen sich dabei sogenannter Streams. Streams sind allgemein definiert als ein aktiviertes lineares Interface zwischen Programm und Hardware. Häufigste Anwendung ist dabei eine Datei, weshalb der Typ auch FILE* heisst. Die folgenden Funktionen sind unter anderem speziell für Dateien gemacht:
void clearer(FILE* stream)
Flags zurücksetzen
int fclose(FILE* stream)
Stream schliessen
int feof(FILE* stream)
gibt 0 zurück, wenn Dateiende noch nicht erreicht
int ferror(FILE* stream)
gibt 0 zurück, wenn alles in Ordnung ist
int fflush(FILE* stream)
Puffer leeren
int fgetc(FILE* stream)
ein Zeichen lesen
int fgetpos(FILE* stream, fpos_t* pos)
pos enthält die Position im Stream
char* fgets(char* str, int i, FILE* stream)
Liest String bis \n aber maximal i-1 Zeichen
FILE* fopen(const char* Name, const char* modus)
Öffnet einen Stream im angegebenen Modus
int fprintf(FILE* stream, const char* format, ...)
In einen Stream werden formtierte Daten ausgegeben
int rename(const char* Datei1, const char* Datei2)
Umbenennen der Datei
void rewind(FILE* stream)
Zurücksetzen der Flags und zurück zum Dateianfang
FILE* tmpfile(void)
Temporäre Datei erstellen
char* tmpnam(char* str)
Benannte temporäre Datei erstellen
Die folgenden Funktionen sind speziell für die Eingabe über Tastatur (stdin) und die Ausgabe über Bildschirm (stdout) gedacht:
int getc(FILE* stream)
liest ein Zeichen
int getchar(void)
liest ein Zeichen aus stdin
char* gets(char* str)
liest eine Zeichenkette aus stdin
void perror(const char* str)
gibt eine Fehlermeldung mit str aus
int printf(const char* str, ...)
gibt den formatierten String aus
int putc(int asc, FILE* stream)
gibt ein Zeichen aus
int putchar(int asc)
gibt ein Zeichen auf stdout aus
int puts(const char* str)
gibt den String auf stdout aus
int scanf(const char* str, ...)
Liest einen formatierten String von stdin
Die folgenden Funktionen sind zuständig für allgemeine Puffer- und Stream-Anweisungen, sie werden normalerweise erst bei manueller Dateiansteuerung benutzt.
void setbuf(FILE* stream, char* Puffer)
Weist dem stream einen Puffer zu
int setvbuf(FILE* stream, char* modus, int, size_t Grösse)
Weist dem stream die Art des Puffers zu
int sprintf(char* Puffer, const char* str, ...)
Formatierte Ausgabe des Strings in den Puffer
int sscanf(const char* Puffer, const char* str, ...)
formatiertes Herauslesen aus dem Puffer
int ungetc(int asc, FILE* stream)
Fehlerhalber gelesenes Zeichen wird wieder zurückgeschrieben zu
int vfprintf(FILE* stream, const char* format, va_list list)
formatierte Ausgabe in einen Stream
int vprintf(const char* str, va_list list)
formatierte Ausgabe an strout
int vsprintf(char* Puffer, const char* str, va_list list)
Viele Funktionen der Standardbibliotheken bieten eine Fülle an Optionen an. Dafür müssen jedoch jeweils die korrekten Werte übergeben werden. Hier sind die wichtigsten aufgelistet:
fopen:
a Daten anhängen. Falls Datei nicht existiert, wird neue Datei erstellt.
a+ Gleich wie a, aber mit Lesezugriff
r Nur Lesen. Fehler, wenn Datei nicht geöffnet werden kann.
r+ Gleich wie r, nur mit Schreibzugriff
w Nur Schreiben. Wenn Datei bereits existent, wird sie überschrieben!!
w+ Gleich wie w, nur mit Lesezugriff.
fseek:
SEEK_CUR aktuelle Position
SEEK_END Dateiende
SEEK_SET Dateianfang
printf/scanf:
%d Dezimal-Integer
%o Oktal-Integer
%x Hexadezimal-Integer
%i allgemeiner Integer
%u vorzeichenloser Integer
%e Fliesskommazahl in Exponentialschreibweise
%f Fliesskommazahl
%g Fliesskommazahl in kürzester Schreibweise
%c ein Zeichen
%s String
rand:
RAND_MAX 0x7FFF grösstmögliche Zufallszahl
setbuf:
BUFSIZ 512 Normale Puffergrösse
setvbuf:
_IOFBF volle Pufferung bis Zwischenspeicher voll
_IOLBF zwilenweise Pufferung
_IONBF keine Pufferung