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 |