C-Programmierung: stdlib.h
EXIT_SUCCESS
Dieses Macro enthält den Implementierungsspezifischen Rückgabewert für ein erfolgreich ausgeführtes Programm.
EXIT_FAILURE
Dieses Macro enthält den Implentierungsspezifischen Rückgabewert für ein fehlerhaft beendetes Programm.
NULL
Das Macro repräsentiert einen Zeiger auf einen nicht gültigen Speicherbereich wie in stddef.h erklärt wird.
RAND_MAX
Das Makro ist implementierungsabhängig und liefert den Maximalwert, den die Funktion rand() zurückgeben kann.
double atof (const char *nptr)
Wandelt den Anfangsteil (gültige Zahlendarstellung) einer Zeichenfolge, auf die nptr zeigt, in eine double-Zahl um.
Besser ist die Verwendung der weiter unten beschriebenen Funktion strtod(), da diese auch eine Fehlererkennung erlaubt, wenn in nptr gar kein Zahlenwert steht.
int atoi (const char *nptr)
Wandelt den Anfangsteil (gültige Zahlendarstellung) einer Zeichenfolge, auf die nptr zeigt, in eine int-Zahl um.
Besser ist die Verwendung der weiter unten beschriebenen Funktion strtol() mit anschließender Konvertierung nach int, da dies auch eine Fehlererkennung erlaubt, wenn in nptr gar kein Zahlenwert steht.
long atol (const char *nptr)
Wandelt den Anfangsteil (gültige Zahlendarstellung) einer Zeichenfolge, auf die nptr zeigt, in eine long int-Zahl um.
Besser ist die Verwendung der weiter unten beschriebenen Funktion strtol(), da diese auch eine Fehlererkennung erlaubt, wenn in nptr gar kein Zahlenwert steht.
Beendet das Programm. Als Fehlercode sollte entweder EXIT_SUCCESS oder EXIT_FAILURE verwendet werden.
Liefert eine Pseudo-Zufallszahl im Bereich von 0 bis RAND_MAX .
long int strtol(const restrict char* nptr, char** restrict endp, int base);
- Die Funktion
strtol(string to long) wandelt den Anfang einer Zeichenkettenptrin einen Wert des Typslong intum. Inendpwird ein Zeiger in*endpauf den nicht umgewandelten Rest abgelegt, sofern das Argument ungleichNULList.
- Die Basis legt fest, um welches Stellenwertsystem es sich handelt. (2 für das Dualsystem, 8 für das Oktalsystem, 16 für das Hexadezimalsystem und 10 für das Dezimalsystem). Die Basis kann Werte zwischen 2 und 36 sein. Die Buchstaben von a (bzw. A) bis z (bzw. Z) repräsentieren die Werte zwischen 10 und 35. Es sind nur Ziffern und Buchstaben erlaubt, die kleiner als
basesind. Ist der Wert fürbase0, so wird entweder die Basis 8 (nptrbeginnt mit 0), 10 (nptrbeginnt mit einer von 0 verschiedenen Ziffer) oder 16 (nptrbeginnt mit 0x oder 0X) verwendet. Ist die Basis 16, so zeigt eine vorangestelltes 0x bzw. 0X an, dass es sich um eine Hexadezimalzahl handelt. Wennnptrmit einem Minuszeichen beginnt, ist der Rückgabewert negativ.
- Ist die übergebene Zeichenkette leer oder hat nicht die erwartete Form, wird keine Konvertierung durchgeführt und 0 wird zurückgeliefert. Wenn der korrekte Wert größer als der darstellbare Wert ist, wird
LONG_MAXzurückgegeben, ist er kleiner wirdLONG_MINzurückgegeben und das MakroERANGEwird inerrnoabgelegt.
long long int strtoll(const restrict char* nptr, char** restrict endp, int base);
(neu in C99 eingeführt)
- Die Funktion entspricht
strtolmit dem Unterschied, das der Anfang des Stringsnptrin einen Wert des Typslong long intumgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdLLONG_MAXzurückgegeben, ist er kleiner, wirdLLONG_MINzurückgegeben.
unsigned long int strtoul(const restrict char* nptr, char** restrict endp, int base);
- Die Funktion entspricht
strtolmit dem Unterschied, das der Anfang des Stringsnptrin einen Wert des Typsungsigned long intumgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdULONG_MAXzurückgegeben.
unsigned long long int strtoull(const restrict char* nptr, char** restrict endp, int base);
(neu in C99 eingeführt)
- Die Funktion entspricht
strtolmit dem Unterschied, das der Anfang des Stringsnptrin einen Wert des Typsungsigned long long intumgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdULLONG_MAXzurückgegeben.
double strtod(const restrict char* nptr, char** restrict endp);
(neu in C99 eingeführt)
- Die Funktion liest einen
double-Wert vom Beginn des Stringsnptrund gibt den Wert als Ergebnis zurück. WennendpnichtNULList, wird ein Zeiger auf das erste nicht verarbeitbare Zeichen in*endpgespeichert. Wenn kein verwertbarer Text für das Einlesen eines double-Wertes gefunden wurde (kompletter Fehlschlag), wird die Anfangsadressenptrin*endpgespeichert. Ist der eingelesene Wert betragsmäßig zu groß für einen double-Wert, gibt die FunktionHUGE_VALzurück und setzterrnoaufERANGE.
void* malloc(size_t size)
Die Funktion fordert vom System size byte an speicher an und gibt im Erfolgsfall einen Zeiger auf den Beginn des Bereiches zurück, im Fehlerfall NULL.
void free(void *ptr)
Gibt den dynamischen Speicher, der durch ptr repräsentiert wurde wieder frei.
int system(const char* command);
Führt den mit command angegebenen Befehl als Shell-Befehl aus und gibt den Rückgabewert des ausgeführten Prozesses zurück.
void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));
Die qsort Funktion sortiert nmemb Elemente mit jeweils size Bytes Größe im Speicherbereich startend bei base.
compar ist ein Zeiger auf eine Funktion, welche zwei Elemente nach dem gewünschten Sortierkriterium vergleicht, die
== 0 liefert für 2 gleiche Elemente
< 0 liefert falls das erste kleiner als das zweite Argument ist
> 0 liefert falls das erste größer als das zweite Argument ist
In diesem Fall wird aufsteigend sortiert, werden die Bedingungen für beide Argumente vertauscht, wird absteigend sortiert.