C-Programmierung: stdlib.h
EXIT_SUCCESS
[Bearbeiten]Dieses Macro enthält den Implementierungsspezifischen Rückgabewert für ein erfolgreich ausgeführtes Programm.
EXIT_FAILURE
[Bearbeiten]Dieses Macro enthält den Implentierungsspezifischen Rückgabewert für ein fehlerhaft beendetes Programm.
NULL
[Bearbeiten]Das Macro repräsentiert einen Zeiger auf einen nicht gültigen Speicherbereich wie in stddef.h erklärt wird.
RAND_MAX
[Bearbeiten]Das Makro ist implementierungsabhängig und liefert den Maximalwert, den die Funktion rand() zurückgeben kann.
double atof (const char *nptr)
[Bearbeiten]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)
[Bearbeiten]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)
[Bearbeiten]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);
[Bearbeiten]- Die Funktion
strtol
(string to long) wandelt den Anfang einer Zeichenkettenptr
in einen Wert des Typslong int
um. Inendp
wird ein Zeiger in*endp
auf den nicht umgewandelten Rest abgelegt, sofern das Argument ungleichNULL
ist.
- 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
base
sind. Ist der Wert fürbase
0, so wird entweder die Basis 8 (nptr
beginnt mit 0), 10 (nptr
beginnt mit einer von 0 verschiedenen Ziffer) oder 16 (nptr
beginnt mit 0x oder 0X) verwendet. Ist die Basis 16, so zeigt eine vorangestelltes 0x bzw. 0X an, dass es sich um eine Hexadezimalzahl handelt. Wennnptr
mit 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_MAX
zurückgegeben, ist er kleiner wirdLONG_MIN
zurückgegeben und das MakroERANGE
wird inerrno
abgelegt.
long long int strtoll(const restrict char* nptr, char** restrict endp, int base);
[Bearbeiten](neu in C99 eingeführt)
- Die Funktion entspricht
strtol
mit dem Unterschied, das der Anfang des Stringsnptr
in einen Wert des Typslong long int
umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdLLONG_MAX
zurückgegeben, ist er kleiner, wirdLLONG_MIN
zurückgegeben.
unsigned long int strtoul(const restrict char* nptr, char** restrict endp, int base);
[Bearbeiten]- Die Funktion entspricht
strtol
mit dem Unterschied, das der Anfang des Stringsnptr
in einen Wert des Typsungsigned long int
umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdULONG_MAX
zurückgegeben.
unsigned long long int strtoull(const restrict char* nptr, char** restrict endp, int base);
[Bearbeiten](neu in C99 eingeführt)
- Die Funktion entspricht
strtol
mit dem Unterschied, das der Anfang des Stringsnptr
in einen Wert des Typsungsigned long long int
umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wirdULLONG_MAX
zurückgegeben.
double strtod(const restrict char* nptr, char** restrict endp);
[Bearbeiten](neu in C99 eingeführt)
- Die Funktion liest einen
double
-Wert vom Beginn des Stringsnptr
und gibt den Wert als Ergebnis zurück. Wennendp
nichtNULL
ist, wird ein Zeiger auf das erste nicht verarbeitbare Zeichen in*endp
gespeichert. Wenn kein verwertbarer Text für das Einlesen eines double-Wertes gefunden wurde (kompletter Fehlschlag), wird die Anfangsadressenptr
in*endp
gespeichert. Ist der eingelesene Wert betragsmäßig zu groß für einen double-Wert, gibt die FunktionHUGE_VAL
zurück und setzterrno
aufERANGE
.
void* malloc(size_t size)
[Bearbeiten]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)
[Bearbeiten]Gibt den dynamischen Speicher, der durch ptr repräsentiert wurde wieder frei.
int system(const char* command);
[Bearbeiten]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 *));
[Bearbeiten]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.