C/Appendice/Librerie standard/stdlib.h
Aspetto
stdlib.h è l'header file che, all'interno della libreria standard del C, dichiara funzioni e costanti di utilità generale: allocazione della memoria, controllo dei processi, conversione tra tipi e così via.
Funzioni
[modifica | modifica sorgente]Le funzioni di stdlib.h
possono essere classificate nelle seguenti categorie: conversione tra tipi, gestione della memoria, controllo dei processi, ricerca ed ordinamento, matematica semplice.
Nome | Descrizione |
---|---|
Conversione tra tipi | |
double atof(const char *str) |
Converte una stringa in un numero in virgola mobile. Equivalente a strtod(s, (char**)NULL) .
|
int atoi(const char *str) |
Converte una stringa in un numero intero. Equivalente a (int)strtol(s, (char**)NULL, 10) .
|
long int atol(const char *str) |
Converte una stringa in un numero intero lungo (long int). Equivalente a strtol(s, (char**)NULL, 10) .
|
double strtod(const char *str, char **endptr) |
Converte una stringa in un double (numero a virgola mobile), effettuando dei controlli sull'overflow e restituendo anche l'eventuale parte non convertita della stringa. |
long int strtol(const char *str, char **endptr, int base) |
Converte una stringa, che rappresenta un numero in una base arbitraria compresa tra 2 e 36, in un double (numero a virgola mobile), effettuando dei controlli sull'overflow e restituendo anche l'eventuale parte non convertita della stringa. |
unsigned long int strtoul(const char *str, char **endptr, int base) |
Equivalente a strtol() tranne per il tipo del risultato, che è unsigned long.
|
Generazione di numeri pseudocasuali | |
int rand(void) |
Restituisce un numero intero pseudocasuale compreso tra 0 e RAND_MAX. |
void srand(unsigned int seed) |
Inizializza il seme per la sequenza di numeri pseudocasuali della funzione rand() .
|
Allocazione e deallocazione di memoria | |
void* calloc(size_t nitems, size_t size) ,
|
Funzioni che si occupano dell'allocazione dinamica della memoria. |
void free(void *ptr) |
Libera la memoria allocata dinamicamente dalla famiglia di funzioni di allocazione dinamica. |
Controllo dei processi | |
void abort(void) |
Causa la terminazione immediata ed anormale del programma, come se fosse stato invocato raise(SIGABRT) .
|
int atexit(void (*func)(void)) |
Registra una funzione, della quale le viene passato il puntatore, affinché venga eseguita appena prima della normale terminazione del programma. |
void exit(int status) |
Causa la normale terminazione del programma. Tutte le funzioni registrate con atexit() vengono eseguite con ordine inverso rispetto alla loro registrazione, gli stream associati al programma vengono liberati, i file vengono scritti su disco (vedere flush() ) ed il controllo viene restituito all'ambiente chiamante, assieme ad un valore numerico, che generalmente indica lo stato del programma o la causa della sua terminazione, che deve essere fornito alla funzione stessa.
|
char* getenv(const char *name) |
Restituisce la stringa che nell'ambiente di lavoro del programma è associata al nome fornito, oppure NULL se non esiste alcuna stringa. I dettagli della funzione sono strettamente dipendenti dal sistema operativo.
|
int system(const char *string) |
Passa la stringa fornitale all'ambiente di lavoro per l'esecuzione e restituisce il codice d'uscita del comando invocato. Se si fornisce NULL , informa sulla eventuale presenza nel sistema di un processore di comandi.
|
Ricerca ed ordinamento | |
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)) |
Implementa in maniera generica l'algoritmo di ricerca dicotomica. |
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) |
Implementa in maniera generica l'algoritmo di ordinamento quicksort. |
Matematica semplice - presenti anche in math.h | |
int abs(int x), ,
|
Calcola il valore assoluto dell'argomento. |
div_t div(int numer, int denom) ,
|
Calcola il quoziente ed il resto della divisione intera tra il dividendo ed il divisore forniti. |