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.