Libreria degli header file del C ANSI Nome Descrizione <assert.h> Contiene la macro assert, utilizzata per indentificare errori logici ed altri tipi di bug nelle versioni di debug di un programma. <complex.h> Un gruppo di funzioni usate per manipolare numeri complessi. (Aggiunto con il C99) <ctype.h> Questo header file contiene funzioni usate per classificare i caratteri in base ai loro tipi o per convertirli da maiuscoli a minusco indipendentemente dal set di caratteri utilizzato (tipicamente ASCII, ma esistono anche implementezioni che usano l'ebcdic <errno.h> Per testare i codici di errore restituiti dalle funzioni di libreria. <fenv.h> Per controllare l'ambiente in virgola mobile. (Aggiunto con il C99) Contiene delle costanti definite che indicano le proprietà specifiche dell'implementazione della libreria in virgola mobile, <float.h> come ad esempio la minima differenza tra due numeri in virgola mobile (_EPSILON), il massimo numero di cifre significative (_DIG) e l'intervallo di numeri che possono essere rappresentati (_MIN, _MAX). <inttypes.h> Per effettuare conversioni precise tra i tipi interi. (Aggiunto con il C99) <iso646.h> Per programmare nel set di caratteri ISO 646. (Aggiunto con l'na1) <limits.h> Contiene delle costanti definite che indicano le proprietà specifiche dell'implementazione dei tipi interi, come l'intervallo dei numeri rappresentabili (_MIN, _MAX). <locale.h> Per setlocale() e le costanti relative. Utilizzato per scegliere il codice locale adatto. <math.h> Per le funzioni matematiche comuni. <setjmp.h> Dichiara setjmp/longjmp, utilizzate per salti non locali. <signal.h> Per controllare varie condizioni d'eccezione. <stdarg.h> Utilizzato da funzioni che accettano un numero variabile di parametri. <stdbool.h> Per un tipo di dato booleano. (Aggiunto con il C99) <stdint.h> Per definire vari tipi interi. (Aggiunto con il C99) <stddef.h> Per definire vari tipi e macro utili. <stdio.h> Fornisce le funzionalità basilari di input/output del C. Questo file include il prototipo delle venerabili funzioni printf e scanf.
<stdlib.h> Per eseguire un gran numero di operazioni, tra cui conversioni, generazione di numeri pseudo-casuali, allocazione di memoria controllo del processo, variabili d'ambiente, segnali, ricerca ed ordinamento. <string.h> Per manipolare le stringhe. <tgmath.h> Per funzioni matematiche di tipo generico. (Aggiunto con il C99) <time.h> Per convertire tra vari formati di data e ora. <wchar.h> Per manipolare stream o stringhe contenenti caratteri estesi - fondamentale per supportare una lunga serie di lingue con caratteri non occidentali. (Aggiunto con l'na1) <wctype.h> Per la classificazione dei caratteri estesi. (Aggiunto con l'na1) \ \
Funzioni libreria stdio.h Le funzioni dichiarate in stdio.h possono generalmente essere divise in due categorie: le funzioni per la manipolazione di file e quelle per la manipolazione dell'input/output. Nome Descrizione fclose fopen, freopen, fdopen remove rename rewind tmpfile clearerr feof ferror fflush fgetpos Chiude il file associato al valore FILE * passatole. Apre un file in lettura o scrittura. Rimuove un file. Rinomina un file. Agisce come se fosse stata chiamata la funzione fseek(stream, 0L, SEEK_SET) sullo stream passatole; in aggiunta, cancella il suo indicatore d'errore. Crea ed apre un file temporaneo, che viene poi cancellato e chiuso con fclose(). Cancella l'indicatore di fine file e quello d'errore per un dato stream. Controlla se l'indicatore di fine file è stato settato per un dato stream. Controlla se l'indicatore d'errore è stato settato per un dato stream. Forza lo svuotamento del buffer output per un dato stream, provocando l'immediata scrittura su file. Salva la posizione corrente associata allo stream passato come primo argomento (un FILE *) nel secondo argomento passatole (un fpos_t *).
fgetc fgets fputc fputs ftell fseek fsetpos fread fwrite getc ungetc getchar gets printf, fprintf, sprintf, snprintf vprintf perror int scanf(const Restituisce un carattere da un file. Restituisce una stringa presa da un file, terminata da un carattere di nuova riga ('\n') o dal carattere nullo ('\0'). Scrive un carattere su un file. Scrive una stringa su un file. Restituisce un indicatore di posizione sul file che può essere passato alla funzione fseek(). Si sposta attraverso un file. Imposta l'indicatore di posizionamento del file di uno stream associato al primo argomento (un FILE *) come memorizzato nel suo secondo argomento (un fpos_t *). Legge da file dei dati di diverse dimensioni. Scrive su file dei dati di diverse dimensioni. Legge e restituisce un carattere dallo stream passatole ed incrementa l'indicatore di posizionamento nel file; è possibile che venga implementato come macro con gli stessi effetti di fgetc(), tranne che potrebbe agire sullo stream più di una volta. Restituisce allo stream almeno un carattere. Alla successiva chiamata di getc verrà passato il carattere restituito da ungetc Ha gli stessi effetti di getc(stdin). Legge caratteri da stdin finché non incontra un carattere di nuova riga (newline) o un EOF e salva il risultato nell'argomento passatole (char *). Utilizzato per stampare vari tipi di dato su stdout. Anch'essa utilizzata per stampare su stdout. Scrive un messaggio di errore su stderr. un carattere in uno stream di input. La funzione scanf legge dei caratteri dal canale standard di input (stdin),
char *format,...) int fscanf(file *stream, const char *format,...); puts li converte secondo le specifiche di formattazione fornite dall'argomento format e memorizza i valori ottenuti negli argomenti seguenti. La stringa di formattazione deve essere costituita da un carattere '%' seguito da uno degli specificatori el c Carattere d Numero decimale f Numero reale s Stringa (array di caratteri) p Indirizzo di memoria La funzione fscanf() ha lo stesso comportamento della funzione scanf(), ma l'input avviene da stream. Scrive una stringa su stdout. Funzioni libreria stdlib.h 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 atof Converte una stringa in un numero in virgola mobile. Equivalente a strtod(s, (char**)null). atoi Converte una stringa in un numero intero. Equivalente a (int)strtol(s, (char**)null, 10). atol Converte una stringa in un numero intero lungo (long int). Equivalente a strtol(s, (char**)null, 10).
strtod strtol strtou l rand srand calloc, malloc, reallo c free abort atexit exit 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. 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. Equivalente a strtol() tranne per il tipo del risultato, che è unsigned long. Generazione di numeri pseudocasuali Restituisce un numero intero pseudocasuale compreso tra 0 e RAND_MAX. Inizializza il seme per la sequenza di numeri pseudocasuali della funzione rand(). Allocazione e deallocazione di memoria Funzioni che si occupano dell'allocazione dinamica della memoria. Libera la memoria allocata dinamicamente dalla famiglia di funzioni malloc(). Controllo dei processi Causa la terminazione immediata ed anormale del programma, come se fosse stato invocato raise(sigabrt). Registra una funzione, della quale le viene passato il puntatore, affinché venga eseguita appena prima della normale terminazione del programma. 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,
getenv system bsearc h qsort abs, labs div, ldiv che generalmente indica lo stato del programma o la causa della sua terminazione, che deve essere fornito alla funzione stessa. 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. Vedere anche variabile d'ambiente. 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 Implementa in maniera generica l'algoritmo di ricerca dicotomica. Implementa in maniera generica l'algoritmo di ordinamento quicksort. Matematica semplice - presenti anche in math.h Calcola il valore assoluto dell'argomento. Calcola il quoziente ed il resto della divisione intera tra il dividendo ed il divisore forniti. Funzioni string.h Nome void *memcpy(void *dest, const void *src, size_t n); void *memmove(void *dest, const void *src, size_t n); Descrizione Copia n bytes tra due aree di memoria che non devono sovrapporsi. Copia n bytes tra due aree di memoria; a differenza di memcpy le aree di memoria possono sovrapporsi.
void *memchr(const void *s, int c, size_t n); Ritorna un puntatore alla prima occorrenza di c in s, o NULL se c non compare tra i primi n caratteri di s. int memcmp(const void *s1, const void *s2, size_t n); Confronta i primi n caratteri di s1 con s2. void *memset(void *s, int c, size_t n); Colloca c nei primi n caratteri di s. char *strcat(char *dest, const char *src); Concatena src alla stringa dest. char *strncat(char *dest, const char *src, size_t n); Concatena al massimo n caratteri src alla stringa dest. char *strchr(const char *s, int c); Restituisce un puntatore alla prima occorrenza di c in s. char *strrchr(const char *s, int c); Restituisce un puntatore all'ultima occorrenza di c in s. int strcmp(const char *s1, const char *s2); Confronta la stringa s1 con s2. int strncmp(const char *, const char *, size_t); Confronta al massimo n caratteri della stringa s1 con s2. int strcoll(const char *, const char *); Confronta due stringhe utilizzando l'ordine lessicografico stabilito dalla localizzazione utilizzata char *strcpy(char *s1, const char *s2); Copia la stringa s2 nella stringa s1, incluso il carattere di terminazione \0. char *strncpy(char *s1, const char *s2, size_t n); Copia al massimo n caratteri della stringa s2 in s1. char *strerror(int n); Restituisce un puntatore alla stringa che corrisponde all'errore n. size_t strlen(const char *s); Restituisce la lunghezza della stringa s. size_t strspn(const char *s, const char *accept); Restituisce la lunghezza della prima istanza della stringa s di lunghezza massima composta esattamente dai caratteri definiti della
size_t strcspn(const char *s, const char *reject); char *strpbrk(const char *s, const char *accept); char *strstr(const char *haystack, const char *needle); char *strtok(char *s, const char *delimiters); size_t strxfrm(char *dest, const char *src, size_t n); stringa accept Restituisce la lunghezza della porzione iniziale della stringa s di lunghezza massima composta esattamente da caratteri diversi da quelli della stringa reject Restituisce la prima occorrenza di un carattere presente nella stringa s che sia uguale ad un qualsiasi carattere presente nella stringa accept Trova la prima occorrenza della stringa needle all'interno della stringa haystack Spezza la stringa s in una serie di stringhe chiamate [token] in corrispondenza dei carattere delimitatore delimiters Trasforma la stringa puntata da src secondo la localizzazione in uso e e copia i primi n caratteri di src nella stringa dest Funzioni math.h Membro acos asin atan atan2 ceil Descrizione arcocoseno arcoseno arcotangente arcotangente di due parametri l'intero minore non minore del parametro
cos coseno cosh coseno iperbolico exp(double x) funzione esponenziale, calcola e x fabs valore assoluto floor l'intero maggiore non maggiore del parametro fmod resto del numero in virgola mobile frexp frazione e potenza di due. ldexp operazione in virgola mobile log logaritmo naturale log10 logaritmo in base 10 pow(x,y) eleva un valore dato ad esponente, x y sin seno sinh seno iperbolico sqrt radice quadrata tan tangente tanh tangente iperbolica