Manpages

NOMBRE

errno − número del último error

SINOPSIS

#include <errno.h>

extern int errno;

DESCRIPCIÓN

Algunas llamadas al sistema (y algunas funciones de biblioteca) dan un valor al entero errno para indicar qué ha ido mal. Su valor sólo es significativo cuando la llamada devolvió un error (usualmente −1) y cuando una función de biblioteca que acabe bien tenga permitido cambiar errno.

Algunas veces, cuando una función tambíen puede devolver −1 como valor válido, se debe poner errno a cero antes de la llamada, para poder detectar posibles errores.

errno se define en el estándar ISO de C como un lvalor (valor de lado izquierdo) modificable de tipo int y no se debe declarar de forma explícita; errno puede ser una macro. errno es "local en hilo"; asignarle un valor en un hilo no afecta al valor que tenga en ningún otro hilo.

Los números de error válidos son todos no cero; ninguna función de biblioteca asigna nunca un valor cero a errno. Todos los nombres de error especificados por POSIX.1 deben tener valores distintos.

POSIX.1 (edición de 2001) lista los siguientes nombres de error simbólicos. De éstos, EDOM y ERANGE existen en el estándar ISO de C. La enmienda 1 del ISO C define el número de error adicional EILSEQ para codificar los errores en múltiples bytes o caracteres extendidos.

E2BIG

Lista de argumentos demasiado larga

EACCES

Permiso denegado

EADDRINUSE

Dirección en uso

EADDRNOTAVAIL

Dirección no disponible

EAFNOSUPPORT

Familia de direcciones no soportada

EAGAIN

Recurso temporalmente no disponible

EALREADY

La conexión se encuentra ya en progreso

EBADF

Descriptor de fichero incorrecto

EBADMSG

Mensaje incorrecto

EBUSY

Recurso ocupado

ECANCELED

Operación cancelada

ECHILD

No hay procesos hijos

ECONNABORTED

Conexión abortada

ECONNREFUSED

Conexión rechazada

ECONNRESET

Conexión reiniciada

EDEADLK

Interbloqueo de recurso evitado

EDESTADDRREQ

Dirección de destino solicitada

EDOM

Error de dominio

EDQUOT

Reservado

EEXIST

El fichero existe

EFAULT

Dirección incorrecta

EFBIG

Fichero demasiado grande

EHOSTUNREACH

El host es inalcanzable

EIDRM

Identificador eliminado

EILSEQ

Secuencia ilegal de bytes

EINPROGRESS

Operación en progreso

EINTR

Llamada a función interrumpida

EINVAL

Argumento inválido

EIO

Error de Entrada/Salida

EISCONN

El conector está conectado

EISDIR

Es un directorio

ELOOP

Demasiados niveles de enlaces simbólicos

EMFILE

Demasiados ficheros abiertos

EMLINK

Demasiados enlaces

EMSGSIZE

Longitud de buffer de mensaje inapropiada

EMULTIHOP

Reservado

ENAMETOOLONG

Nombre de fichero demasiado largo

ENETDOWN

La red está desactivada

ENETRESET

Conexión abortada por la red

ENETUNREACH

Red inalcanzable

ENFILE

Demasiados ficheros abiertos en el sistema

B ENOBUFS

Espacio en el buffer no disponible

ENODATA

No hay mensajes disponibles en la cabeza de la cola de lectura del FLUJO

ENODEV

No existe tal dispositivo

ENOENT

No existe ese fichero o directorio

ENOEXEC

Error en el formato del ejecutable

ENOLCK

No hay bloqueos disponibles

ENOLINK

Reservado

ENOMEM

No hay bastante espacio

ENOMSG

Ningún mensaje del tipo deseado

ENOPROTOOPT

Protocolo no disponible

ENOSPC

No queda espacio en el dispositivo

ENOSR

No hay recursos de tipo FLUJO

ENOSTR

No es un FLUJO

ENOSYS

Función no implementada

ENOTCON

El conector no está conectado

ENOTDIR

No es un directorio

ENOTEMPTY

El directorio no está vacío

ENOTSOCK

No es un conector

ENOTSUP

Operación no soportada

ENOTTY

Operación de control de E/S inapropiada

ENXIO

No existe tal dispositivo o dirección

EOPNOTSUPP

Operación no soportada sobre el conector

EOVERFLOW

Valor demasiado grande para ser almacenado en el tipo de datos

EPERM

Operación no permitida

EPIPE

Interconexión rota

EPROTO

Error de protocolo

EPROTONOSUPPORT

Protocolo no soportado

EPROTOTYPE

Tipo de protocolo erróneo para el conector

ERANGE

Resultado demasiado grande

EROFS

Sistema de ficheros de sólo lectura

ESPIPE

Posicionamiento inválido

ESRCH

No existe tal proceso

ESTALE

Reservado

ETIME

Tiempo de espera agotado para el ioctl() sobre el FLUJO

ETIMEDOUT

La operación ha excedido su plazo de tiempo

ETXTBSY

Comprobación de fichero ocupada

EWOULDBLOCK

La operación podría bloquearse (puede ser algun valor como EAGAIN)

EXDEV

Enlace inapropiado

VÉASE TAMBIÉN

perror(3), strerror(3)