Función ftell en c

Función ftell en c
Como muchos otros lenguajes de programación, el lenguaje C se les ocurrió muchas funciones incorporadas. Estas funciones se han agregado dentro del idioma C para realizar diferentes funciones en diferentes niveles.

Una de las funciones es la función "ftell ()" del concepto de presentación C. Es muy probable que esta función se use para leer la ubicación del archivo existente de la transmisión proporcionada en relación con el comienzo del archivo. Al cambiar el puntero del documento a la última ubicación del documento, este método se está divulgando para recuperar el tamaño general del conjunto de datos. La ubicación actual se devuelve en formato largo, y el documento puede contener más de 32767 bytes de información. Por lo tanto, hemos decidido cubrir el c ftell () en Ubuntu 20.04 sistema.

Comience con el lanzamiento terminal de Ubuntu, yo.mi., Ctrl+Alt+T. Tenemos que hacer un nuevo archivo de texto en la carpeta de inicio de nuestro sistema Ubuntu. Hacer uso de la instrucción táctil para hacerlo. Vaya hacia la carpeta de inicio de su sistema Linux y abra el archivo recién creado con doble tocado en él. Agregue algunos datos de texto, guárdelos y cierre.

Puede ver que hemos creado el archivo.archivo txt y agregar los datos a continuación en él. Utilizaremos este archivo en nuestros ejemplos cercanos.

$ Cat File.TXT

Ejemplo 01:

Hagamos nuestros primeros ejemplos para este artículo. Debe crear un nuevo archivo de tipo C en su sistema utilizando la instrucción táctil de Ubuntu junto con el nombre de un archivo utilizando el ".extensión C ”. Este archivo es necesario para abrir dentro de uno de los editores de Ubuntu para usarlo para un código. Puede usar el editor Vim, Text o Nano. Hemos estado usando el editor "GNU Nano" hasta ahora para hacer que nuestro código sea más atractivo.

$ touch ftell.C
$ nano ftell.C

Cuando el archivo se abrió en el editor de nano GNU, inicialmente estará vacío. Tenemos que comenzar nuestro código C con el uso de encabezados, probablemente "stdio.H ". Realizaremos nuestro código dentro de la función Main () de este código.

Inicie la función Main () del tipo de retorno "INT". Hemos declarado el descriptor de archivo de tipo de puntero usando el objeto de archivo. También se declara otra variable de tipo entero, yo.mi., "longitud". Ahora, tenemos que abrir el archivo de texto ya existente de nuestro sistema utilizando la función Fopen () del archivo C para leer sus datos con las escrituras de lectura, I.mi., "R". Si el archivo se abrió correctamente, el descriptor del archivo se devolvería con algún valor entero, muy probablemente "1".

Hemos estado utilizando la instrucción "si" para verificar si el valor del descriptor del archivo que acabamos de obtener es nulo o no. Si es así, llamará al método Perror () de C para generar un mensaje de error, I.mi., "Hay algún error". Después de esta declaración "IF", si el archivo se abre correctamente, utilizaremos la función Seek () de la presentación de C para llevar el puntero al final de un archivo.

Tenemos que utilizar la opción Seek_end como el tercer argumento de la función fseek (). El 0 en esta función se usa para buscar el puntero desde las 0 posiciones. La longitud del tamaño total del archivo se ha obtenido del uso de la función ftell ().

El archivo se ha cerrado con la función fclose () utilizando el descriptor del archivo en él. Ahora, la instrucción printf está aquí para mostrar los bytes totales de los datos dentro de nuestro archivo de texto utilizando la variable "Longitud". Guarde su archivo de código con el atajo CTRL+S.

#incluir
vacío principal ()
Archivo *fd;
int longitud;
fd = fopen ("archivo.txt "," r ");
if (fd == null)
Perror ("Hay algún error");
return (-1);

fseek (fd, 0, Seek_end);
longitud = ftell (fd);
fclose (fd);
printf ("nuestro tamaño de archivo: %d bytes \ n", len);
return (0);

Salga del editor nano con Ctrl+x Actualización compile el código C a través del compilador "GCC". Ejecute su código después de eso con el "./a.Comando fuera ". Puede ver que nuestro archivo de texto tiene un total de 370 bytes.

$ GCC ftell.C
ps ./a.afuera

Ejemplo 02:

Tomemos un nuevo ejemplo para usar la función ftell () de C dentro de ella. Use el mismo archivo de código para actualizar nuestro código. Usa el "stdio.encabezado h ”e iniciar la función principal (). Use el descriptor de archivo de tipo de punto "F" para abrir el archivo de texto "archivo.txt ”en el modo de lectura. Declarar una variedad de tamaño 10, yo.mi., "A". Hemos estado utilizando la función fscanf () de la archivos de c para escanear la primera cadena del archivo de texto que no tiene más de 10 letras.

La instrucción printf () ha estado utilizando el descriptor de archivo en su función ftell () para mostrar la longitud de la primera cadena desde su archivo de texto también.

#incluir
vacío principal ()
Archivo *f = fopen ("archivo.txt "," r ");
char a [10];
fscanf (f, "%s", a);
printf ("Posición del puntero: %ld \ n", ftell (f);
return (0);

Después de esta compilación de código y en ejecución, este archivo nos muestra la salida, yo.mi., la posición del puntero después del 1calle la cadena es 4, como se muestra a continuación.

$ GCC ftell.C
ps ./a.afuera

Hagamos la primera cadena en el archivo.archivo txt un poco más usando edición simple.

$ Cat File.TXT

Ahora, use la misma cantidad de código sin actualización/cambio para ver cómo resulta. Hemos estado usando la matriz de tamaño 10 para la matriz "A". Si el tamaño es menor, mostrará el tamaño total de la primera cadena, yo.mi., longitud pero muestra algo de salida en el área de salida también.

La ejecución de este código nos muestra que el tamaño es 28, pero el programa está destrozado porque la primera cadena es de 28 tamaños, y ha estado usando un área de tamaño 10.

$ GCC ftell.C
ps ./a.afuera

Conclusión:

Este artículo discutió los detalles menores del uso de la función ftell () de C para obtener el tamaño de los datos utilizados en algún documento particular. Hemos discutido dos de las ilustraciones simples para explicar el concepto de función ftell en el lenguaje de programación C.