Función Strerror 2 C

Función Strerror 2 C
Los errores del sistema ocurren. Tan pronto como su programa intenta llegar al sistema operativo, algo sale mal. Si esto ocurre, la función devuelve -1, y su código debe confiar en nuestro error de confianza para descubrir qué salió mal y tal vez emitir un mensaje de error instructivo. La biblioteca C llama a Char *strerror (int errnum), que produce una referencia a una cadena que comprende el mensaje de error, y busca una matriz interna para el número de error Errnum. Dependiendo del compilador y la plataforma utilizados para el desarrollo, Strerror genera cadenas de error y convierte una cadena de mensajes de error al número de error en Errnum.

Se requieren valores de errno con errnums adecuados. Esta función no produce una cadena de mensaje de error específica de locales. La biblioteca contiene variables y funciones destinadas a simplificar que su programa proporcione falla detallada del mensaje de error por parte de una llamada de biblioteca en el formato habitual. Puede obtener el mensaje de error predeterminado para un cierto código de error utilizando los métodos Strerror, y puede obtener rápidamente el nombre del programa que cometió el error utilizando el nombre corto del programa variable. Investigamos la función Strerror del lenguaje C con mayor detalle.

Sintaxis de la función Strerror en lenguaje C

Usamos la siguiente sintaxis de la función strerror () en el lenguaje C. La cadena que explica el error se obtiene utilizando esta sintaxis de Strerror.

char *strerror (int errnum);

Solo tenemos un argumento que toma la función Strerror. El argumento es errnum: un error específico para el cual desea recibir el mensaje de error. Si se desconoce el error de tiempo de ejecución, la función strerror () proporciona un mensaje de error desconocido. De lo contrario, proporciona la cadena de descripción de error relevante.

El valor de ERRNO permanece sin cambios si la operación es exitosa; Si no, se cambia a un valor distinto de cero. Además, la función Strerror genera dos errores, Einval y Erange. Si el valor de Errnum es un número de error no válido, el error EINVAL se arroja. Cuando la cadena de descripción del error no se pudo almacenar en el almacenamiento proporcionado, el error generado es erange.

Ejemplo 1

Aquí, hemos demostrado la utilización de la función Strerror. Utilizaremos esto en nuestro programa C para generar el error en la ejecución. Discutamos la implementación de esta función Strerror. Debemos incluir algunos archivos de encabezado de biblioteca de C, que son necesarios para la implementación de este código.

Primero, hemos insertado el stdio.H Archivo de encabezado H. Debemos incluir el archivo de encabezado stdio.H para agregar los métodos relacionados con la entrada/salida en nuestro programa. Entonces, la cadena.H se agrega después del stdio.H Archivo de encabezado H. El encabezado de la biblioteca estándar C se llama cadena.H. Sin embargo, el nombre es un poco engañoso porque comprende declaraciones macro, constantes y declaraciones de métodos y tipos, se utilizan para manejar múltiples funciones de manejo de memoria además de administrar cadenas. Como este es el código de la función Strerror para acceder a esta función, necesitamos importar un error.h archivo para esta función.

La biblioteca estándar del lenguaje de programación C contiene el archivo de encabezado errno.H. Define macros con el símbolo de Errno para informar y recuperar circunstancias de error (abreviatura de "número de error"). Ciertas funciones de la biblioteca que detectan errores guarda un valor de modo que el número de error esté en la variable ERRNO. Los únicos valores que las funciones de la biblioteca almacenan son los mayores que cero.

Independientemente de si notan errores, cualquier función de biblioteca puede cambiar el valor que se guarda antes de regresar. La mayoría de las funciones informan errores al devolver un valor específico, generalmente nulo para los métodos que devuelven punteros y -1 para los métodos que devuelven enteros. La persona que llama de algunas funciones debe establecer errno en 0 y examinarlo luego para verificar si se encontró un error.

#incluir
#incluir
#incluir
int main ()
Archivo *fp;
fp = fopen ("archivo.txt "," r ");
if (fp == null)
printf ("Error: %s \ n", strerror (errno));

return (0);

Después de incluir el archivo de encabezado, tenemos la declaración de la función principal. Dentro de la sección de la función principal, hemos creado el puntero del archivo "FP" con el objeto de archivo. Se le asigna al archivo un nombre de archivo con el modo de lectura dentro de la función Fopen si la condición se aplica a la variable del puntero FP. Si el FP se encuentra nulo, se ejecuta la instrucción printf que tiene la función Strerror. La función Strerror toma el error como argumento y lo devuelve en un formulario de cadena.

Debido a que estamos intentando abrir un archivo que no esté presente, compilemos y ejecutemos el programa mencionado anteriormente, lo que dará como resultado el siguiente resultado:

Ejemplo 2

Como el código anterior genera la cadena de error en sí cuando esto ocurre. También podemos definir el error de cadena por nosotros mismos. Tenemos que definir la cadena de error primero con el error.

int main (int argc, char *argv [])

Archivo *fout;
int last_error = 0;
if ((fout = fopen (argv [1], "w")) == null)
last_error = errno;
errno = 0;

if (last_error)
fprintf (stderr, "fopen: no pudo abrir %s para escribir: %s",
argv [1], strerror (last_error));
fputs ("Continuar ... \ n", stderr);

return exit_success;

Hemos insertado varios archivos de encabezado para este código de ejemplo y cada uno tiene su funcionalidad y propósito. Entonces, hemos establecido la función principal. El fout se crea como la variable de puntero y el último_error también se declara como la variable, que se asigna con el valor 0. Las expresiones anidadas si se utilizan aquí. Si la condición de Last_errror coincide con el Errorno, entonces podemos especificar el último_error en la función Strerror.

El error de cadena definido por el usuario se produce cuando se ejecuta el código anterior, como se muestra a continuación:

Conclusión

El objetivo principal de la guía es educarlo sobre el estr que el estr que el idioma C. Utilizando el error.H Archivo de encabezado en el código, podemos acceder fácilmente a la función Strerror. La sintaxis es muy fácil de entender. Aquí, discutimos dos ejemplos que explicarán el uso del Strerror en el idioma C. También podemos crear o definir el error en el error de cadena que queremos mostrar.