ERRNO en C

ERRNO en C
El lenguaje C no permite directamente la gestión de errores, pero permite el acceso a un nivel menor a través de valores de retorno. En caso de inexactitud, la mayoría de la función C o tal vez Linux llaman al rendimiento -1 o nula y establece el código de error errno. Es una constante universal que muestra cuándo ha fallado una llamada de función. En el archivo de encabezado, encontrará una lista de diferentes códigos de error. Como resultado, un desarrollador de C puede examinar los valores suministrados y, según ellos, tomar las medidas necesarias. Parece que no hay ningún problema en el programa si el resultado es 0. Dentro de este artículo de hoy, discutiremos el uso de la variable "errno" para obtener códigos de error y mensajes en nuestro entorno Linux (i.mi., Ubuntu 20.0.4 sistema.) Comencemos con la apertura de una carcasa terminal en el Ubuntu 20.04 Sistema operativo de Linux e instalación del compilador GCC de C.

Antes de avanzar hacia la creación de un código C, necesitamos un archivo C en nuestro sistema Linux. Por lo tanto, hemos estado utilizando la instrucción táctil para crear una. Este archivo debe contener una extensión "C" al final. Como puede averiguar, hemos creado un archivo llamado "Errno.C". El comando de lista se ha utilizado para enumerar todos los archivos y carpetas de nuestro directorio de trabajo actual en Linux. El archivo C recién hecho "Errno.C ”también se enumera aquí. Para crear código C en el archivo, debemos abrirlo en algún editor como un editor de texto, editor VIM o editor de GNU Nano. Entonces, lo hemos estado abriendo dentro del editor GNU Nano con el uso del comando "nano" en el shell. Este archivo se abrirá en un editor de terminal.

Ejemplo 01

Comencemos con el ejemplo inicial de este artículo. Digamos que desea abrir y leer los datos de un archivo de texto específico que reside en el mismo directorio actual utilizando la presentación en el código C. Para esto, debemos usar la biblioteca de salida de entrada estándar de una C en nuestro código. Entonces, lo hemos incluido en la línea de apertura que emplea la palabra clave "#include".

Después de eso, necesitamos usar el "Errno.encabezado h "en este código C para que podamos utilizar la variable incorporada" errno "para obtener el código de error y el mensaje. La ejecución principal se iniciará desde la función "main ()" del programa C. Dentro de este programa principal, hemos estado utilizando la variable "Archivo" para inicializar el descriptor de archivo "F" del tipo de puntero. Este descriptor de archivo se ha utilizado para abrir el archivo "nuevo.txt "en un formato de solo lectura utilizando la función" Fopen "de la presentación en C. La declaración if-else está aquí para verificar si el archivo se abre correctamente o no. La parte "Si" de la declaración verificará si el resultado devuelto del descriptor del archivo es igual a 0 o no. Si 0, entonces significa que falta el archivo o no se abre correctamente. Por lo tanto, la instrucción printf utilizará la variable "errno" para mostrar el código de error.

Por otro lado, la parte "más" se utilizará cuando la condición no satisfaga el valor del descriptor de archivo que no sea. La instrucción printf mostrará que la apertura es exitosa.

Hemos compilado este código con el compilador "GCC" y luego lo ejecutamos con el "./a.instrucción fuera ". Esta ejecución del código devuelve el código de error número 2 donde no se ha encontrado ningún archivo.

Para eliminar este error, necesitamos crear un nuevo archivo de texto con la instrucción de "tocar" y agregarle algunos datos con la instrucción "echo" como se muestra. La instrucción "CAT" muestra que el archivo contiene los datos de texto recién agregados en él.

Ahora, cuando compile y ejecute el mismo código en el shell, ejecutará la parte "else" y mostrará el mensaje "exitoso" (i.mi., el archivo se encontró ahora.)

Si desea mostrar el mensaje de error junto con su código de error, debe usar la función "Strerror" en el programa. Para eso, debe usar la "cadena.H ”encabezado en el código también. Entonces, hemos agregado el encabezado y actualizamos el componente "IF" de la declaración "if-else". La llamada de función Strerror () ha estado demandando el "Errno" para obtener el mensaje de error mediante su código de error.

Cuando falta su archivo, se mostrará con el mensaje de error "No hay dicho archivo o directorio" en el shell como se muestra.

Ejemplo 02

Verifiquemos el número de error para otro ejemplo de error. Hemos estado utilizando las bibliotecas estándar en el programa y la función Main () contiene la inicialización de una variable "Val" y la llamada de función para "verificar" la función pasando la variable "Val". La función check () estaría utilizando la instrucción "if-else" para verificar si el valor "val" es cero o no y, por lo tanto, el otro valor puede ser divisible o no. Como el valor "val" es 7, puede ser divisible por 8. Entonces, la parte "más" de la función check () se ejecutaría para calcular el resultado de la división y mostrarla en el shell.

Después de la compilación y la ejecución, hemos encontrado que la división es posible. La parte de lo contrario ha calculado y mostrado el valor de división entre 89 y el valor "7" para la variable "Val".

Actualicemos nuevamente el código y agregamos 0 como un valor a la variable "Val" en la función Main () para revertir los resultados. Entonces, hemos actualizado el valor "Val" a 0 como se indica en la imagen a continuación. El restante el código permaneció intacto.

Después de ejecutar este código actualizado, tenemos el código de error 0 y su mensaje de error.

Conclusión

Se trata del uso de la variable "errno" en el artículo para obtener los códigos de error de diferentes excepciones utilizando su "Errno.encabezado. Además, hemos discutido el uso de la función "Strerror" para mostrar el mensaje de error junto con el número de código. Hemos incorporado dos instancias en esta guía para explicar mejor la idea de errno.