Stdlib.h é um arquivo cabeçalho da biblioteca de propósito geral padrão da linguagem de programação C. Ela possui funções envolvendo alocação de memória, controle de processos, conversões e outras. Ela é compatível com C++ e é chamada cstdlib
em C++. O nome "stdlib" vem de standard library (standard library é biblioteca padrão em inglês).
Funções membros
Membros de stdlib.h
pode ser classificado em: conversão, memória, controle de processo, ordenamento e busca, matemática.
Name |
Description
|
Conversão de tipo
|
atof |
string para float
|
atoi |
string para integer
|
atol |
string para long integer
|
strtod |
string para double
|
strtol |
string para long int
|
strtoul |
string para unsigned long int
|
Geração de seqüência pseudo-aleatória
|
rand |
gera um número inteiro pseudo aleatório
|
srand |
seleciona a semente do gerador pseudo aleatório
|
Alocação e liberação de memória
|
malloc
calloc
realloc |
aloca memória do "heap"
|
free |
libera memória de volta para o "heap"
|
Controle de processos
|
abort |
força o término da execução
|
atexit |
registra uma função "callback" para saída do programa
|
exit |
termina a execução do programa
|
getenv |
obtém uma variável de ambiente
|
system |
executa um comando externo
|
Ordenamento e busca
|
bsearch |
busca binária em "array"
|
qsort |
ordena "array" segundo algoritmo Quick Sort
|
Matemática
|
abs
labs |
valor absoluto
|
div
ldiv |
divisão inteira
|
Membros constantes
Os arquivos stdlib.h
e stddef.h
definem a macro NULL, que é um ponteiro nulo constante, e representa um valor de ponteiro que garante não apontar para um endereço válido na memória. NULL pode ser definido como uma constante igual a int zero, long int zero, ou zero "cast" para void * pointer:
#define NULL 0
#define NULL 0L
#define NULL ((void *) 0)
Nota: Apesar do ponteiro nulo constante ser definido sempre como a representação simbólica 0 ou 0 "cast" para ponteiro void, a representação binária real desse ponteiro é dependente de sistema e pode não ter todos os bits zero.
Membros do tipo de dados
Um tipo de dados chamado size_t
é definido em stdlib.h
, que representa o tamanho de um "array" na função membro. Na prática, size_t
é sempre assumido ter os mesmos requisitos para armazenamento que um unsigned integer. Devido ao fato de que o valor real de size_t
é dependente de arquitetura, alguns erros de programação podem ocorrer, [1], especialmente em arquiteturas de 64 bits.
Dois tipo de dados menos utilizados são div_t
e ldiv_t
. Eles retornam os tipos de retorno das funções div e ldiv. O padrão as define como:
typedef struct {
int quot, rem;
} div_t;
typedef struct {
long int quot, rem;
} ldiv_t;
Funções não padronizadas
itoa é uma função comum que é incluída várias vezes na biblioteca stdlib.h, mas o padrão não a define. Ela pode ter sido inclusa pelo fato de ter aparecido no livro The C Programming Language.
Veja também
stdio.h
References