B.19 <stdlib.h>
Die Headerdatei <stdlib.h> ist so etwas wie ein Sammelsurium von Funktionen, weil sich hier viele Funktionen unterschiedlicher Bereiche finden. Es gibt folgende Funktionen in <stdlib.h>:
Syntax | Bedeutung |
double atof(
const char *str); |
einen String in einen double-Wert konvertieren |
int atoi(const char *str); |
einen String in einen int-Wert konvertieren |
long int atol(
const char *str); |
einen String in einen long int-Wert konvertieren |
long long int atoll(
const char *str); 1) |
einen String in einen long long int-Wert konvertieren |
float strtof(
const char * restrict str,
char ** restrict endptr);1) |
einen String in einen float-Wert konvertieren |
double strtod(
const char * restrict str,
char ** restrict endptr); |
einen String in einen double-Wert konvertieren |
long double strtold(
const char * restrict str,
char ** restrict endptr);1) |
einen String in einen long double-Wert konvertieren |
long int strtol(
const char * restrict str,
char ** restrict endptr,
int base); |
einen String in einen long int-Wert konvertieren |
long long strtoll(
const char * restrict str,
char ** restrict endptr,
int base); 1) |
einen String in einen long long-Wert konvertieren |
unsigned long int strtoul(
const char * restrict str,
char ** restrict endptr,
int base); |
einen String in einen unsigned long int-Wert konvertieren |
unsigned long int strtoull(
const char * restrict str,
char ** restrict endptr,
int base); 1) |
einen String in einen unsigned long long-Wert konvertieren |
void *malloc(size_t size); |
Speicherplatz allozieren |
void *calloc(
size_t anzahl,
size_t size); |
Speicherplatz allozieren |
void *realloc(
void *zeiger,
size_t size); |
Speicherplatz allozieren |
void free(void *ptr); |
allozierten Speicherplatz wieder freigeben |
int rand(void); |
Erzeugt eine Pseudo-Zufallszahl zwischen 0 und RAND_MAX. |
void srand(
unsigned int start); |
Legt den Startpunkt für eine Pseudo-Zufallszahl fest. |
int atexit(
void (* funktion) (void)); |
eine Funktion zur Ende-Behandlung eintragen |
void exit(int status); |
normale Programmbeendigung |
void _Exit(int status); 1) |
wie exit(), nur wird das Programm sofort beendet, und zwar ohne das Senden von Signalen oder Ausführung von Funktionen, die mit der Funktion atexit() eingerichtet wurden |
void abort(void); |
nicht normale Programmbeendigung |
int system(const char *str); |
ein Kommando zur Ausführung an die Umgebung übergeben |
char *getenv(
const char *name); |
aktuelle Umgebungsvariablen des Systems abfragen |
div_t div(
int zaehler,
int nenner); |
den Quotienten und den Rest einer Division berechnen (int) |
ldiv_t ldiv(
long int zaehler,
long int nenner); |
den Quotienten und den Rest einer Division berechnen (long) |
lldiv_t lldiv(
long long zaehler,
long long nenner); 1) |
den Quotienten und den Rest einer Division berechnen (long long) |
int abs(int num); |
Absolutwert eines int-Arguments |
long int labs(long num); |
Absolutwert eines long int-Arguments |
long long int llabs(
long long int num); 1) |
Absolutwert eines long long int-Arguments |
void *bsearch(
const void *key,
const void *start,
size_t n,
size_t size,
int (*cmp)(
const void *,
const void *)); |
binäre Suche |
void qsort(
void *array,
size_t n,
size_t size,
int (*cmp)(
const void *,
const void *)); |
Quicksort (Sortieren) |
int mblen(
const char *s, size_t n);1) |
Liefert die Länge eines Multibyte-Zeichens zurück oder überprüft, ob die Codierung von Multibyte-Zeichen statusabhängig ist. |
int mbtowc(
wchar_t * restrict pwc,
const char * restrict s,
size_t n);1) |
Konvertiert ein Multibyte-Zeichen in ein Breitzeichen. |
int wctomb(
char *s,
wchar_t wchar);1) |
Konvertiert ein Breitzeichen in ein Multibyte-Zeichen oder überprüft, ob die Codierung von Multibyte-Zeichen statusabhängig ist. |
size_t mbstowcs(
wchar_t * restrict pwcs,
const char * restrict s,
size_t n);1) |
Konvertiert einen Multbyte-String in einen Breitzeichen-String. |
size_t wcstombs(
char * restrict s,
const wchar_t * restrict pwcs,
size_t n);1) |
Konvertiert einen Breitzeichen-String in einen Multibyte-String. |
1) Diese Funktionen sind erst im C99-Standard vorhanden. |
Folgende Makros sind in <stdlib.h> definiert:
Makro | Beschreibung |
EXIT_FAILURE |
Fehlerhafte Beendigung des Programms mit exit(EXIT_FAILURE). EXIT_FAILURE ist ein Wert ungleich 0. |
EXIT_SUCCESS |
Erfolgreiche Beendigung des Programms mit exit(EXIT_SUCCESS). EXIT_SUCCESS hat gewöhnlich den Wert 0. |
NULL |
der NULL-Zeiger, der auch in einigen anderen Headern der Standard-Bibliothek definiert ist |
RAND_MAX |
eine ganzzahlige Konstante für den maximal möglichen, ganzzahligen Rückgabewert der Funktion rand() |
MB_CUR_MAX |
Ebenfalls eine ganzzahlige Konstante vom Typ size_t, die die maximale Anzahl von Bytes für ein Multibyte-Zeichen enthält. Der Wert ist in der Regel kleiner oder gleich MB_LEN_MAX aus der Headerdatei <limits.h>. |
Zu guter Letzt sind noch folgende fünf Typen in <stdlib.h> enthalten:
Type | Beschreibung |
div_t |
Struktur mit den Elementen quot und rem vom Typ int, die von der Funktion div() zurückgegeben wird |
ldiv_t |
Struktur mit den Elementen quot und rem vom Typ long int, die von der Funktion ldiv() zurückgegeben wird |
lldiv_t |
Struktur mit den Elementen quot und rem vom Typ long long, die von der Funktion lldiv() zurückgegeben wird |
size_t |
Ein ganzzahliger unsigned Typ, der als Ergebnis von sizeof-Operationen verwendet wird. Der Typ ist ebenfalls in mehreren Headerdateien der Standard-Bibliothek definiert. |
wchar_t |
Ein ganzzahliger Typ mit der Größe des größten zu speichernden erweiterbaren Zeichensatzes, der implementiert ist. wchar_t ist in weiteren Headerdateien der Standard-Bibliothek definiert. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.