ERRNO(3)

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
perror(3), strerror(3)

TRADUZIDO POR LDP-BR em 21/08/2000.
Marcelo D. Beckmann <marcelobeckmann@yahoo.com> (tradução) Espaço para o Revisor <nome@dominio.com.br> (revisão)