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