Los códigos de error de Linux son aquellos códigos que se muestran si ocurre un error en el sistema mientras se trabaja o usa un programa. Los errores se pueden reconocer con la ayuda de códigos de error. Los códigos de error nos ayudan a reconocer la fuente del error.
Si estamos trabajando en un sistema Linux, es obvio que podemos encontrarnos con errores. Algunos errores pueden ser menores y no provocar la interrupción del programa. Pero puede haber algunos errores que pueden hacer que un sistema o programa deje de responder. Estos errores pueden provocar la pérdida de datos o impedir que el programa se complete. La mayoría de los errores se muestran en forma de códigos o mensajes.
En esta sección veremos errores en la programación en C y una lista de posibles errores en el linux sistema.
Errores de Linux en la programación en C
Un programador experto debe saber cómo solucionar los errores. El lenguaje de programación C no proporciona soporte directo para el manejo de errores. Tenemos que detectar el origen del error y solucionarlo. En lenguaje C, los valores de retorno muestran el fracaso o el éxito. Si falla una función en el programa C, debemos manejar el error en consecuencia; de lo contrario, registra los errores al final en un archivo de registro.
Al ejecutar los programas en C, es posible que observemos algunos números de error como 'El error no es: 17'. Aquí, el error nº 17 significa que el archivo ya existe. Cada número de error tiene algún significado.
El lenguaje C soporta una variable. 'errorno .' Al usar esta variable de número de error, podemos usar algunas funciones de manejo de errores para manejarlo correctamente.
Para utilizar el número de error de la variable externa, debemos incluir un archivo de encabezado 'errno.h.' El archivo de encabezado se utiliza para definir la variable 'errno'. La variable errno la establecen las llamadas al sistema y las funciones de la biblioteca en caso de error. Hay dos funciones importantes en el lenguaje de programación c hacer frente a los errores; perror y error . La función perror se utiliza para imprimir la descripción del error y la función sterror devuelve una cadena con un código de error.
Mostremos la lista de códigos de error usando errno.
Error de Linux
La utilidad errno se utiliza para buscar códigos de error, nombres de macros y las descripciones correspondientes. Por ejemplo, si proporcionamos ENOENT en un sistema Linux, mostrará el código 2 y la descripción. ' El fichero o directorio no existe .' Si proporcionamos el código 2, se mostrará el ENOENT y su descripción. .
Si la utilidad errno no está instalada en nuestra máquina, mostrará el siguiente error:
Para instalarlo, ejecute el siguiente comando:
sudo apt install moreutils
Al ejecutar el comando anterior, el paquete moreutils se instala en nuestra máquina que contiene la utilidad errno.
Mostrar la lista de códigos de error
Para mostrar la lista de códigos de error, ejecute el comando de la siguiente manera:
errno -l
El comando anterior mostrará la lista de códigos de error de RedHat. Considere el siguiente resultado:
Mostrar la información de un número de error.
Para mostrar la información de un número de error particular, ejecute el comando de la siguiente manera:
errno 2
El comando anterior mostrará la descripción del error número 2. Considere el siguiente resultado:
Mostrar la información de un nombre de error.
Para mostrar la información de un nombre de error en particular, ejecute el comando errno, seguido del nombre del error. Por ejemplo, para mostrar la información de un nombre de error. 'ESRCH ,' ejecute el comando de la siguiente manera:
errno ESRCH
El comando anterior mostrará la información sobre el nombre de error especificado. Considere el siguiente resultado:
Mostrar el error usando cadenas
Para mostrar una descripción de error utilizando una cadena de la descripción, ejecute el comando de la siguiente manera:
errno -s permission
El comando anterior mostrará los errores cuya descripción contiene permiso de cadena. Considere el siguiente resultado:
Lista de errores del sistema Linux
A continuación se muestra una lista parcial de posibles errores del sistema Linux:
Código de error | Error no | Descripción |
---|---|---|
Superior | 1 | Se muestra si la operación no está permitida. |
ENOENTE | 2 | Se muestra si no existe dicho archivo o directorio. |
ESCRCH | 3 | Se muestra si no existe tal proceso. |
EINTR | 4 | Se muestra para una llamada al sistema interrumpida. |
EEI | 5 | Se muestra en caso de error de entrada/salida. |
ENXIO | 6 | Se muestra si no existe tal dispositivo o dirección. |
E2BIG | 7 | Se muestra si la lista de argumentos es demasiado larga. |
ENOEXEC | 8 | Se muestra si hay un error de formato ejecutivo. |
EBADF | 9 | Se muestra en caso de que el descriptor de archivo sea incorrecto. |
ENIÑO | 10 | Se muestra si no existe ningún proceso secundario. |
OTRA VEZ | 11 | Se muestra si el recurso no está disponible temporalmente. |
ENOMEMA | 12 | Se muestra si el sistema no puede asignar memoria. |
ACCESO | 13 | Se muestra si se deniega el permiso. |
FALLA | 14 | Se muestra si hay una dirección incorrecta. |
ENOTBLK | 15 | Se muestra si se requiere bloquear dispositivo. |
OCUPADO | 16 | Se muestra si el dispositivo o recurso está ocupado. |
EXISTE | 17 | Se muestra si el archivo ya existe. |
EXDEV | 18 | Se muestra si hay un enlace entre dispositivos no válido. |
ENODEV | 19 | Se muestra si no existe tal dispositivo. |
ENOTDIR | 20 | Se muestra si no hay un directorio. |
EISDIR | 21 | Se muestra si hay un directorio. |
ELECCIÓN ÚNICA | 22 | Se muestra si hay un argumento no válido. |
PONERSE | 23 | Se muestra si hay demasiados archivos abiertos en el sistema. |
MUERTO | 24 | Se muestra si hay demasiados archivos abiertos. |
ENOTTY | 25 | Se muestra si hay un ioctl inadecuado para el dispositivo. |
ETXTBSY | 26 | Se muestra si el archivo de texto está ocupado. |
EFBIG | 27 | Se muestra si el archivo es demasiado grande. |
ENOSPC | 28 | Se muestra si no queda espacio en el dispositivo. |
ESPIPE | 29 | Se muestra en caso de búsqueda ilegal. |
EROFS | 30 | Se muestra en caso de un sistema de archivos de solo lectura. |
EMLINK | 31 | Se muestra si hay demasiados enlaces. |
EPIPE | 32 | Se muestra en caso de rotura de tubería. |
EDOM | 33 | Se muestra si el argumento numérico está fuera de dominio. |
RANGO | 34 | Se muestra si el resultado numérico está fuera de rango. |
EDEADLK | 35 | Se muestra si se evita el punto muerto de recursos. |
ENAMETOOLONG | 36 | Se muestra si el nombre del archivo es demasiado largo. |
ENOLCK | 37 | Se muestra si no hay cerraduras disponibles. |
ENÓSYS | 38 | Se muestra si la función no está implementada. |
ENOTEMPTY | 39 | Se muestra si el directorio no está vacío. |
ELOOP | 40 | Se muestra si hay demasiados niveles de enlaces simbólicos. |
ENOMSG | 42 | Se muestra si no hay ningún mensaje del tipo deseado. |
EIDRM | 43 | Se muestra si se elimina el identificador. |
ECHRNG | 44 | Se muestra si el número de canal está fuera de rango. |
EL2NSYNC | 45 | Se muestra si el nivel 2 no está sincronizado. |
EL3HLT | 46 | Se muestra si se detiene el nivel 3. |
EL3RST | 47 | Se muestra si se restablece el nivel 3. |
ELNRNG | 48 | Se muestra si el número de enlace está fuera de rango. |
EUNATCH | 49 | Se muestra si el controlador de protocolo no está conectado. |
ENOCSI | 50 | Se muestra si no hay ninguna estructura CSI disponible. |
EL2HLT | 51 | Se muestra si se detiene el nivel 2. |
HA SIDO | 52 | Se muestra en caso de cambio no válido. |
EBADR | 53 | Se muestra en caso de que el descriptor de solicitud no sea válido. |
EXCOMPLETO | 54 | Se muestra si el intercambio está completo. |
ENOANO | 55 | Se muestra en caso de que no haya ánodo. |
EBADRQC | 56 | Se muestra para un código de solicitud no válido. |
EBADSLT | 57 | Se muestra para una ranura no válida. |
EBFONT | 59 | Se muestra si hay un formato de archivo de fuente incorrecto. |
UNILATERAL | 60 | Se muestra si el dispositivo no es una transmisión. |
ENODATA | 61 | Se muestra si no hay datos disponibles. |
ETIEMPO | 62 | Se muestra en caso de que el temporizador expire. |
ENOSR | 63 | Se muestra en caso de que los recursos no estén disponibles. |
ENONET | 64 | Se muestra si la máquina no está en la red. |
ENOPKG | 65 | Se muestra si el paquete no está instalado. |
EREMOTE | 66 | Se muestra si el objeto es remoto. |
ENOLACE | 67 | Se muestra si el enlace se ha cortado. |
EADV | 68 | Se muestra por error de publicidad. |
ESRMNT | 69 | Se muestra en caso de error Srmount. |
ECOMM | 70 | Se muestra si hay un error de comunicación en el envío. |
EPROTO | 71 | Se muestra por error de protocolo. |
EMULTIHOP | 72 | Se muestra cuando se intenta realizar Multihop. |
EDOTDOT | 73 | Se muestra para un error específico de RFS. |
EBADMSG | 74 | Se muestra para mensaje incorrecto. |
DESBORDAMIENTO | 75 | Se muestra si el valor es demasiado grande para el tipo de datos definido. |
ENOTUNIQ | 76 | Se muestra si el nombre no es único en la red. |
EBADFD | 77 | Se muestra si el descriptor del archivo está en mal estado. |
EREMCHG | 78 | Se muestra si se cambia la dirección remota. |
ELIBACC | 79 | Se muestra si no podemos acceder a una biblioteca compartida necesaria. |
elibbad | 80 | Se muestra en caso de acceder a una biblioteca compartida dañada. |
ELIBSCN | 81 | Se muestra si hay una sección .lib en a.out que está dañada. |
ELIBMAX | 82 | Se muestra si intentamos vincular demasiadas bibliotecas compartidas. |
ELIBEXEC | 83 | Se muestra si no podemos ejecutar una biblioteca compartida directamente. |
EILSEQ | 84 | Se muestra para un carácter ancho o multibyte no válido o incompleto. |
EREINICIAR | 85 | Se muestra para informar que se debe reiniciar la llamada al sistema interrumpida. |
ESTRPIPE | 86 | Se muestra si hay un error en la tubería de flujo. |
USUARIOS | 87 | Se muestra para demasiados usuarios. |
ENOTSOCK | 88 | Se muestra para el funcionamiento con enchufe sin enchufe. |
EDESTADDRREQ | 89 | Se muestra si se requiere la dirección de destino. |
TAMAÑOEMSG | 90 | Se muestra si el mensaje es demasiado largo. |
EPROTOTIPO | 91 | Se muestra si el protocolo es de tipo incorrecto para el socket. |
ENOPROTOOPT | 92 | Se muestra si el protocolo no está disponible. |
SOPORTE EPROTONOS | 93 | Se muestra si el protocolo no es compatible. |
ESOCKTNOSAPOYO | 94 | Se muestra si el tipo de socket no es compatible. |
EOPNOTSUPP | 95 | Se muestra si la operación no es compatible. |
EPFNOSAPOYO | 96 | Se muestra si la familia de protocolos no es compatible. |
EAFNOSAPOYO | 97 | Se muestra si la familia de direcciones no es compatible con el protocolo. |
EADDRINO | 98 | Se muestra si la dirección ya está en uso. |
EADDRNOTAVAIL | 99 | Se muestra si el sistema no puede asignar la dirección solicitada. |
ENETDOWN | 100 | Se muestra si la red está inactiva. |
ENETUNREACH | 101 | Se muestra si la red es inalcanzable. |
ENTRESET | 102 | Se muestra si la red ha perdido la conexión al restablecerse. |
ECONNABORTADO | 103 | Se muestra si el software provocó la interrupción de la conexión. |
RESET ECONOMICO | 104 | Se muestra si el par restablece la conexión. |
ENOBUFES | 105 | Se muestra si no hay espacio en el buffer disponible. |
ESKÓN | 106 | Se muestra si el punto final de transporte ya está conectado. |
ENOTCONN | 107 | Se muestra si el punto final de transporte no está conectado. |
APAGADO | 108 | Se muestra si el sistema no puede enviar después del cierre del punto final de transporte. |
ETOOMANYREFS | 109 | Se muestra si hay demasiadas referencias: no se puede empalmar. |
ETIMEDOUT | 110 | Se muestra si se agota el tiempo de conexión. |
ECONNRECHAZADO | 111 | Se muestra si se rechaza la conexión. |
EHOSTDOWN | 112 | Se muestra si el Host está inactivo. |
EHOSTUNREACH | 113 | Se muestra si no hay ninguna ruta al host. |
YA YA | 114 | Se muestra si la operación ya está en curso. |
CADA PROGRESO | 115 | Se muestra si la operación está ahora en curso. |
HACER CLIC | 116 | Se muestra para el identificador de archivo obsoleto. |
EUCLEAN | 117 | Se muestra si la estructura necesita limpieza. |
UNIFORME | 118 | Se muestra para archivos que no son de tipo XENIX. |
DISPONIBLE | 119 | Se muestra si no hay semáforos XENIX disponibles. |
EISNAM | 120 | Se muestra si hay un archivo de tipo con nombre. |
Eremotio | 121 | Se muestra en caso de error de E/S remotas. |
EDQUOT | 122 | Se muestra si se excede la cuota de disco. |
ENOMEDIO | 123 | Se muestra si no se encuentra ningún medio. |
TIPO MEDIO | 124 | Se muestra si hay un tipo de medio incorrecto. |
ECANCELADO | 125 | Se muestra si se cancela la operación. |
enokey | 126 | Se muestra si la clave requerida no está disponible. |
EKEYEXPIRED | 127 | Se muestra si la clave ha caducado. |
EKEYREVOCADO | 128 | Se muestra si la clave ha sido revocada. |
EKEYRECHAZADO | 129 | Se muestra si la clave fue rechazada por el servicio. |
PROPIETARIO MUERTO | 130 | Se muestra si el propietario falleció. |
ENOTRECUBIERTO | 131 | Se muestra para un estado no recuperable. |
ERFKILL | 132 | Se muestra si la operación no es posible debido a una eliminación por RF. |
EHWVENENO | 133 | Se muestra si la página de memoria tiene un error de hardware. |