Zum Inhalt springen

C-Programmierung: stdlib.h

Aus Wikibooks

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 Zeichenkette nptr in einen Wert des Typs long int um. In endp wird ein Zeiger in *endp auf den nicht umgewandelten Rest abgelegt, sofern das Argument ungleich NULL 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ür base 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. Wenn nptr 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 wird LONG_MIN zurückgegeben und das Makro ERANGE wird in errno 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 Strings nptr in einen Wert des Typs long long int umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wird LLONG_MAX zurückgegeben, ist er kleiner, wird LLONG_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 Strings nptr in einen Wert des Typs ungsigned long int umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wird ULONG_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 Strings nptr in einen Wert des Typs ungsigned long long int umgewandelt wird. Wenn der korrekte Wert größer als der darstellbare Wert ist, wird ULLONG_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 Strings nptr und gibt den Wert als Ergebnis zurück. Wenn endp nicht NULL 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 Anfangsadresse nptr in *endp gespeichert. Ist der eingelesene Wert betragsmäßig zu groß für einen double-Wert, gibt die Funktion HUGE_VAL zurück und setzt errno auf ERANGE .

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.


zurück