Scroll to navigation

ERRNO(3) Funções de Biblioteca 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)
30 Março 1998