errno

El archivo de cabecera <errno.h> define la variable entera errno. que se establece por llamadas al sistema y algunas funciones de biblioteca en el caso de error para indicar lo que salió mal. Su valor sólo es significativo cuando el valor de retorno de la llamada indica un error (es decir, -1 en la mayoría de las llamadas al sistema; -1 o NULL en la mayoría de las funciones de biblioteca); una función que tiene éxito le está permitido modificar errno. Los números de error válidos son todos los que no sea cero; errno nunca se establece en cero por cualquier llamada al sistema o función de la biblioteca.

Para algunas llamadas al sistema y funciones de la biblioteca (por ejemplo, getpriority ()) -1 es una declaración válida en caso de éxito. En tales casos, el retorno de éxito puede distinguir de un resultado de error estableciendo errno a cero antes de la llamada, y después, si la llamada devuelve un estado que indica que puede haber ocurrido un error, verifica si errno tiene un valor distinto de cero.

 errno está definido por el estándar ISO C para ser un lvalue modificable de tipo int, y no debe ser declarado explícitamente; errno puede ser una macro. errno es un subproceso local; colocarlo en un subproceso no afecta su valor en cualquier otro subproceso.

Todos los nombres de error especificados mediante POSIX.1 deberá tener valores distintos, con la excepción de EAGAIN y EWOULDBLOCK, que puede el mismo.

A continuación se muestra una lista de los nombres de error simbólicos que se definen en Linux. Algunos de ellos están marcados POSIX.1, lo que indica que el nombre se define por POSIX.1-2001, o C99, lo que indica que el nombre se define por C99.

NOMBRE ERRORES DESCRIPCIÓN
 
E2BIG Lista de argumentos demasiado largo (POSIX.1)
EACCES Permiso denegado (POSIX.1)
EADDRINUSE Dirección ya en uso (POSIX.1)
EADDRNOTAVAIL La dirección no está disponible (POSIX.1)
EAFNOSUPPORT La familia de direcciones no está soportado (POSIX.1)
EAGAIN Recursos disponibles en estos momentos (puede ser el mismo valor que EWOULDBLOCK) (POSIX.1)
EALREADY Conexión ya en curso (POSIX.1)
EBADE Intercambio no válido
EBADF Descriptor de archivo incorrecto (POSIX.1)
EBADFD Descriptor de archivos en mal estado
EBADMSG Mensaje incorrecto (POSIX.1)
EBADR Solicitud de descriptor no válido
EBADRQC Código de solicitud No válido
EBADSLT Ranura no válida
EBUSY Dispositivo o recurso ocupado (POSIX.1)
ECANCELED Operación cancelada (POSIX.1)
ECHILD No hay procesos secundarios (POSIX.1)
ECHRNG Número de canal fuera de rango
ECOMM Error de comunicación en envío
ECONNABORTED Conexión abortada (POSIX.1)
ECONNREFUSED Conexión rechazada (POSIX.1)
ECONNRESET Conexión restablecida (POSIX.1)
EDEADLK Bloqueo de Recursos evitado (POSIX.1)
EDEADLOCK Sinónimo de EDEADLK
EDESTADDRREQ Dirección de destino requerido (POSIX.1)
EDOM El argumento Matemático está fuera del dominio de la función (POSIX.1, C99)
EDQUOT Superó la cuota de disco (POSIX.1)
EEXIST El fichero ya existe (POSIX.1)
EFAULT Dirección errónea (POSIX.1)
EFBIG El archivo es demasiado grande (POSIX.1)
EHOSTDOWN El host está desconectado
EHOSTUNREACH El host no está accesible (POSIX.1)
EIDRM Identificador eliminado (POSIX.1)
EILSEQ Secuencia de bytes Ilegal (POSIX.1, C99)
EINPROGRESS Operación en curso (POSIX.1)
EINTR Interrumpida “llamada de función” (POSIX.1), ver signal.
EINVAL Argumento no válido (POSIX.1)
EIO Error de entrada / salida (POSIX.1)
EISCONN Socket está conectado (POSIX.1)
EISDIR Es un directorio (POSIX.1)
EISNAM Llamada de un tipo de archivo
EKEYEXPIRED La clave ha expirado
EKEYREJECTED La clave fue rechazada por el servicio
EKEYREVOKED La clave ha sido revocada
EL2HLT El Nivel 2 se detuvo
EL2NSYNC El Nivel 2 no está sincronizado
EL3HLT El Nivel 3 se detuvo
EL3RST El Nivel 3 se detuvo
ELIBACC No se puede acceder a una biblioteca compartida necesaria
ELIBBAD Acceso a una biblioteca compartida corrompida
ELIBMAX Intento de enlace en demasiadas bibliotecas compartidas
ELIBSCN sección lib en a.out dañada
ELIBEXEC No se puede ejecutar una biblioteca compartida directamente
ELOOP Demasiados niveles de enlaces simbólicos (POSIX.1)
EMEDIUMTYPE Incorrecto tipo de medio
EMFILE Hay demasiados archivos abiertos (POSIX.1)
EMLINK Demasiados enlaces (POSIX.1)
EMSGSIZE Mensaje demasiado largo (POSIX.1)
EMULTIHOP Intento de saltos múltiples (POSIX.1)
ENAMETOOLONG Nombre de archivo demasiado largo (POSIX.1)
ENETDOWN Red desconectada (POSIX.1)
ENETRESET Conexión abortada por la red (POSIX.1)
ENETUNREACH Red inaccesible (POSIX.1)
ENFILE Demasiados ficheros abiertos en el sistema (POSIX.1)
ENOBUFS No hay espacio de búfer disponible (POSIX.1)
ENODATA No hay ningún mensaje disponible en el flujo de cola de la cabeza de lectura (POSIX.1)
ENODEV No existe el dispositivo (POSIX.1)
ENOENT No existe el fichero o directorio (POSIX.1)
ENOEXEC Error de formato Exec (POSIX.1)
ENOKEY La clave requerida no está disponible
ENOLCK No hay bloqueos disponibles (POSIX.1)
ENOLINK El vínculo ha sido cortado (POSIX.1)
ENOMEDIUM No se ha encontrado medio
ENOMEM No hay suficiente espacio (POSIX.1)
ENOMSG No hay ningún mensaje del tipo deseado (POSIX.1)
ENONET La máquina no está en la red
ENOPKG El paquete no está instalado
ENOPROTOOPT El protocolo no está disponible (POSIX.1)
ENOSPC No queda espacio en el dispositivo (POSIX.1)
ENOSR No hay recursos STREAM (POSIX.1 (posibilidad con XSI STREAMS))
ENOSTR No es una corriente (POSIX.1 (posibilidad XSI STREAMS))
ENOSYS Función no implementada (POSIX.1)
ENOTBLK Bloque de dispositivo requerido
ENOTCONN El socket no está conectado (POSIX.1)
ENOTDIR No es un directorio (POSIX.1)
ENOTEMPTY El directorio no está vacío (POSIX.1)
ENOTSOCK No es un socket (POSIX.1)
ENOTSUP Operación no soportada (POSIX.1)
ENOTTY Inadecuado funcionamiento del control de E/S (POSIX.1)
ENOTUNIQ El nombre no es el único en la red
ENXIO No existe el dispositivo o la dirección (POSIX.1)
EOPNOTSUPP Operación no compatible con el socket (POSIX.1) (ENOTSUP y EOPNOTSUPP tienen el mismo valor en Linux, pero de acuerdo a POSIX.1 estos valores de error deben ser distintos.)
EOVERFLOW Valor demasiado grande para ser almacenado en el tipo de datos (POSIX.1)
EPERM Operación no permitida (POSIX.1)
EPFNOSUPPORT Familia de protocolo no soportado
EPIPE Tubería rota (POSIX.1)
EPROTO Error de protocolo (POSIX.1)
EPROTONOSUPPORT Protocolo no soportado (POSIX.1)
EPROTOTYPE Tipo de protocolo incorrecto para el zócalo (POSIX.1)
ERANGE Resultado demasiado grande (POSIX.1, C99)
EREMCHG Dirección remota cambiada
EREMOTE El objeto es remoto
EREMOTEIO Error E/S remotas
ERESTART La llamada al sistema interrumpida debe reiniciarse
EROFS Sistema de ficheros de sólo lectura (POSIX.1)
ESHUTDOWN No se puede enviar después de cerrar el transporte de punto final
ESPIPE seek no válido (POSIX.1)
ESOCKTNOSUPPORT Tipo de socket no soportado
ESRCH No existe el proceso (POSIX.1)
ESTALE Controlador de archivo desactualizado (POSIX.1) Se puede producir este error por NFS, y demás filesystems
ESTRPIPE Flujos de error en tubería
ETIME Ha transcurrido el tiempo (POSIX.1 (posibilidad XSI STREAMS)) (POSIX.1 dice tiempo de espera ioctl Stream)
ETIMEDOUT Conexión terminada (POSIX.1)
ETXTBSY Archivo de texto ocupado (POSIX.1)
EUCLEAN La estructura requiere un mantenimiento
EUNATCH Controlador del protocolo no conectado
EUSERS Demasiados usuarios
EWOULDBLOCK La operación se bloqueara (puede ser el mismo valor que EAGAIN) (POSIX.1)
EXDEV enlace incorrecto (POSIX.1)
EXFULL Intercambio completo

atras

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s