Leer función en el lenguaje C

Leer función en el lenguaje C

El lenguaje C tiene dos funciones básicas que le permiten leer los archivos usando las funciones Read () y fread (). También tiene métodos con funciones para leer los archivos personaje por carácter.

Es importante conocer las funciones de procesamiento de archivos, sus métodos de llamada, argumentos de entrada y salida, etc., Para usarlos con fluidez porque son el recurso disponible para el programador para almacenar y eliminar la información que se almacena en el sistema.

En este artículo de Sugerencia de Linux, aprenderá cómo usar la función Read () para leer los archivos.

Explicaremos todo sobre "Ella", su sintaxis, la llamada del método, los argumentos de entrada y salida, el tipo de datos que cada uno acepta y cómo declararlos correctamente.

Luego aplicamos lo que aprendimos poniendo el uso de esta característica en ejemplos prácticos.

Para que pueda ser plenamente consciente de cómo usar la función Read (), agregamos una sección especial que describe todos los errores que pueden ocurrir al usar esta función, así como su detección e identificación, para que tenga los necesarios técnicas para una solución rápida en caso de error.

Sintaxis de la función Read () en lenguaje C

size_t read (int fd, void *buf, size_t count);

Descripción de la función Read () en el idioma C

La función Read () lee el contenido del archivo abierto que se especifica por su descriptor en el argumento de entrada "FD". Esta función lee y copia el número de recuento de bytes en el búfer que BUF apunta. El identificador "FD" es un entero que se devuelve como resultado de la función Open () cuando se abre el archivo.

Si la función Read () regresa correctamente, devuelve el número de bytes lectura. Un resultado que es igual a 0 significa que el archivo se lee hasta el final, y -1 significa que se produce un error. El error específico se puede identificar recuperando su código de la variable Global ERRNO. Más tarde, encontrará una sección que describe los errores que pueden ocurrir al usar la función Read () y las técnicas para detectarlos e identificarlos.

La función Read () se declara en el "unistd.encabezado. Para usarlo, debe incluir este archivo en su código de la siguiente manera:

#incluir

Cómo leer un archivo con la función Read () en el idioma C

En este ejemplo, explicaremos cómo abrir y leer un archivo usando las funciones Open () y Read ().

Para este propósito, anteriormente creamos un archivo de texto con el nombre, "Ejemplo.txt ", a través del administrador de Linux y lo guardó en el directorio" Documentos ". Escribimos el primer párrafo de este artículo en él.

El primer paso para desarrollar el código para leer el archivo es incluir los encabezados necesarios y crear una función main () que devuelva un valor vacío. Definimos el entero "FD" que sirve como descriptor de archivo, un búfer de caracteres 1024 llamado "Buff" donde se almacena la información que lee () la función se almacena. La ruta de la matriz almacena la ruta y el nombre del archivo que queremos leer.

Después de definir las variables necesarias, llamamos a la función Open () para abrir el archivo. Llamamos a esta función pasando la matriz de ruta con la ruta y el nombre del archivo como el primer argumento de entrada y especificando el indicador O_RDONLY como el segundo argumento. Pasamos el entero "FD" como el argumento de salida donde Open () devuelve el descriptor que usamos para leer en el archivo.

Una vez que tenemos el archivo abierto, leemos su contenido llamando a la función Read () y pasando el descriptor "FD" que la función Open () devuelve como el primer argumento. Pasamos el puntero al búfer "Buff" como el segundo argumento en el que almacenamos el contenido para leer. Finalmente, pasamos el tamaño del búfer que es 1024 bytes en este caso. Luego usamos la función printf () para mostrar los contenidos que se almacenan en "Buff" en la consola de comando.

Aquí está el código completo para este ejemplo:

#incluir
#incluir
#incluir
#incluir
int main ()

intfd;
Char Buff [1024];
Char ruta [] = "Documentos/Ejemplo.TXT";
fd = abrir (ruta, o_rdonly);
leer (FD, Buff, 1024);
printf ("\ n \ n%s \ n \ n", buff);

En la siguiente figura, vemos la compilación y ejecución de este código. Como podemos ver, Read () pone todo el contenido del "Ejemplo.archivo txt "en" buff "y la función printf () lo imprime en la consola de comando:

Cómo detectar e identificar los errores que pueden ocurrir al usar la función Read () en el idioma C

Usar read () puede generar varios errores. Cuando esto sucede, esta función devuelve un resultado que es igual a -1.

La forma más fácil de determinar si se ha producido un error es usar una condición "si" donde la condición es el valor de retorno de -1. Ahora, veamos cómo puede usar este método para determinar si ha ocurrido un error:

int n;
n = leer (fd, buff, 1024);
if (n == -1)
printf ("Se produjo un error al intentar leer el archivo.");

Si la función Read () devuelve con un error, pasa a la instrucción "IF" e imprime el mensaje, "se produjo un error al intentar leer el archivo".

Cuando ocurre un error, un código numérico se almacena automáticamente en la variable Global Errno que se define en el "ERRNO.encabezado. Este código se puede usar para identificar el error que ocurrió.

El siguiente es un extracto con los errores que la función Read () puede generar y que se definen en el "Errno.encabezado H ”, junto con una breve descripción de cada error y el valor entero asociado:

Definición Valorar errar Error
Águila 11 Intentar otra vez.
Ebadf 9 Número de archivo incorrecto.
Edestaddrreq 89 Dirección de destino requerida.
Enfermo 14 Direccion incorrecta.
EfBig 27 Archivo demasiado grande.
Eintr 4 Llamadas del sistema interrumpidas.
Einval 22 Argumento no válido.
Eio 5 Error de E/S.
Entera 1 Operacion no permitida.

La forma más fácil de identificar un error es abrir un interruptor donde la variable errno es la condición de salto y cada caso es una definición de error.

A continuación, veamos un ejemplo en el que intentamos ingresar un descriptor con un signo negativo, lo que resulta en un error. Para identificar un error, usamos la condición "if" que vimos en el fragmento anterior. Para identificarlo, abrimos un interruptor con los tres errores más comunes que esta función puede producir.

#incluir
#incluir
#incluir
#incluir
#incluir
int main ()

intfd, n;
Char Buff [1024];
Char ruta [] = "Documentos/Ejemplo.TXT";
fd = abrir (ruta, o_rdonly);
n = leer (0, buff, 1024);
if (n == -1)
switch (errno)
Caso ebadf:
printf ("Número de archivo malo. Error: %i \ n ", errno);
romper;
Caso Einval:
printf ("Argumento no válido. Error: %i \ n ", errno);
romper;
Case EIO:
printf ("Error de E/S . Error: %i \ n ", errno);
romper;


Como podemos ver en la siguiente figura, la función Read () devuelve un error cuando se pasa un descriptor no válido como argumento de entrada. El valor que se recupera de la variable ERRNO se usa como una condición de salto que nos permite identificar el error cuando ingresamos el caso EBADF.

Conclusión

En este artículo de sugerencia de Linux, le mostramos cómo usar la función Read (), una de las funciones más comunes que se implementa en el idioma C para leer los archivos.

Miramos su sintaxis y una sección que describe su operación teórica, argumentos de entrada y salida, y sus tipos de datos. Posteriormente, implementamos lo que aprendimos a través de un ejemplo práctico con código e imágenes que muestran cómo abrir y leer un archivo usando las funciones Open () y Read ().

Para tener los medios necesarios para solucionar un posible error al usar esta función, agregamos una sección especial que explica los métodos que el lenguaje C proporciona para detectar e identificar los errores.