errno

ERRNO(3)                     Funciones de biblioteca                    ERRNO(3)



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)



                                 5 octubre 2002                         ERRNO(3)