NOME
errno − numero do último erro
SINOPSE
#include <errno.h>
extern int errno;
DESCRIÇÃO
O inteiro errno é publicado pelas chamadas ao sistema (e algumas funções de biblioteca) para indicar o que ocorreu errado. Esse valor é significativo apenas quando uma chamada retorna um erro (usualmente −1), e a função de biblioteca que sucede pode alterar errno.
Algumas vezes, quando −1 já é um dos valores de retorno válidos, deve-se zerar errno antes da chamada para que se possa detectar possíveis erros.
errno é definido pelo padrão ISO C para ser um valor modificável do tipo int, e não necessita ser declarado explicitamente; errno pode ser uma macro. errno é local a thread; alteração em uma thread não afeta seu valor em qualquer outra thread.
Números de erro validos são todos não-zero; errno nunca é zerado por qualquer função de biblioteca. Todos os nomes de erro especificados por POSIX.1 devem ter valores distintos.
POSIX.1 (edição 1996) lista os nomes de erro simbólicos a seguir. Destes, EDOM e ERANGE estão no padrão ISO C. ISO C Adendo 1 define o número de erro adicional EILSEQ para codificação de erros em multibyte ou caracteres completos.
E2BIG |
Lista de argumentos muito longa |
|||
EACCES |
Acesso negado |
|||
EAGAIN |
Recurso temporariamente indisponível |
|||
EBADF |
Descritor de arquivo ruim |
EBADMSG
Mensagem ruim
EBUSY |
Recurso ocupado |
ECANCELED
Operação cancelada
ECHILD |
Sem processo filho |
EDEADLK
Evitado congelamento de recusos
EDOM |
Erro de domínio |
|||
EEXIST |
Arquivo existente |
|||
EFAULT |
Endereço ruim |
|||
EFBIG |
Arquivo muito grande |
EINPROGRESS
Operação em progresso
EINTR |
Chamada de função interrompida |
|||
EINVAL |
Argumento inválido |
|||
EIO |
Erro de entrada/saída |
|||
EISDIR |
É um diretório |
|||
EMFILE |
Muitos arquivos abertos |
|||
EMLINK |
Muitas ligações |
EMSGSIZE
Tamanho inapropriado do buffer de mensagens
ENAMETOOLONG
Nome de arquivo muito longo
ENFILE |
Muitos arquivos abertos no sistema |
|||
ENODEV |
Dispositivo não encontrado |
|||
ENOENT |
Arquivo ou diretório não encontrado |
ENOEXEC
Erro no formato de exec
ENOLCK |
Sem travas disponíveis |
|||
ENOMEM |
Sem espaço suficiente |
|||
ENOSPC |
Sem espaço no dispositivo |
|||
ENOSYS |
Função não implementada |
ENOTDIR
Não é um diretório
ENOTEMPTY
Diretório não está vazio
ENOTSUP
Não suportado
ENOTTY |
Operação de controle de E/S inapropriada |
|||
ENXIO |
Dispositivo ou endereço não encontrado |
|||
EPERM |
Operação não permitida |
|||
EPIPE |
Pipe quebrado |
|||
ERANGE |
Resultado muito grande |
|||
EROFS |
Sistema de arquivo somente leitura |
|||
ESPIPE |
Procura inválida |
|||
ESRCH |
Processo não encontrado |
ETIMEDOUT
Time out na operação
EXDEV |
Ligação inválida |
Muitos outros números de erro são retornados por diversas implementações Unix. System V retorna ETXTBSY (Arquivo texto ocupado) se for feita uma tentativa de exec() em um arquivo que está aberto para escrita. Linux retorna esse erro se a tentativa tiver um arquivo ao mesmo tempo mapeado em memória com VM_DENYWRITE e aberto para escrita.
VEJA TAMBÉM
TRADUZIDO POR LDP-BR em 21/08/2000.
Marcelo D. Beckmann <marcelobeckmann [AT] yahoo.com> (tradução) Espaço para o Revisor <nome [AT] dominio.br> (revisão)