Programación en C

Cómo utilizar la llamada al sistema Fsync en C

Cómo utilizar la llamada al sistema Fsync en C

El fsync se utiliza para coordinar el estado interno de un archivo con cualquier dispositivo de almacenamiento. La llamada al sistema fsync () pasa ("vacía") todo el contenido interno alterado de (i.mi., búfer alterado para) el descriptor de archivo fd a una máquina de disco (o cualquier otro dispositivo de almacenamiento perpetuo) donde permanece dicho archivo. Incluso limpia los detalles del archivo. La llamada al sistema fsync funciona en un solo archivo. Se eliminarán todas las actualizaciones del archivo. Si se editan varias tareas en el mismo archivo, la llamada al sistema fsync se suspenderá antes de que todas las actualizaciones se hayan transferido al disco. Si el sistema anuncia que la conversión se ha realizado correctamente, la llamada se bloqueará. El uso de fsync () no garantiza que quizás la inclusión del archivo en el sistema de archivos también haya entrado en el disco. Sin embargo, se requiere un fsync () apropiado en el descriptor de archivo de la carpeta para este.

Instalar requisitos previos:

Entonces, la llamada al sistema fsync necesita que se instalen algunas bibliotecas para trabajar en ella. Si alguien quiere comprobar la información adicional sobre el comando fsync, debe tener los paquetes manpages-dev instalados en su sistema Linux. Entonces veremos cómo hacer eso. Use la tecla Ctrl + Alt + T del teclado para iniciar la terminal de línea de comandos de Linux. Ahora, para instalar el paquete manpages-dev, pruebe el siguiente comando de instalación de apt, seguido de un paquete llamado "manpages-dev". El proceso de instalación requerirá la contraseña de su cuenta para que Linux continúe. Por lo tanto, ingrese la contraseña de Linux de su cuenta actual y presione la tecla Intro desde el teclado. Comenzará rápidamente la instalación y la configuración de las páginas de manual en su sistema Linux. Siéntese hasta que complete el proceso de instalación.

$ sudo apt install manpages-dev

Después de la instalación, puede usar el siguiente comando para verificar la información sobre el sistema fsync.

$ man 2 fsync

La salida para el comando man se adjunta a continuación. Puede leer cualquier información al respecto para comprender el concepto de la llamada al sistema "fsync" en el sistema Linux. Presione el botón "q" del teclado para salir de esta ventana.

Otro requisito previo necesario para utilizar el identificador de llamada del sistema fsync, el compilador de GCC. Esto se debe a que estamos usando la llamada al sistema fsync dentro del lenguaje C. Entonces, para ejecutar y compilar código en lenguaje C, debemos tener algún paquete compilador instalado en nuestro sistema. Entonces, aquí tenemos un compilador GCC. Puede instalarlo usando el comando sudo apt muy simple como se muestra a continuación. Completará su instalación en unos minutos y podrá escribir fácilmente códigos C en archivos.

$ sudo apt install gcc

Ejemplo:

Comencemos a trabajar en el comando fsync para entenderlo bien. En primer lugar, debe crear un archivo de tipo C utilizando el editor nano en el shell de la línea de comandos. Para esto, intente ejecutar la siguiente consulta simple en el shell.

$ nano nuevo.C

Una vez creado y abierto el archivo, es hora de escribir código C. Para que pueda ver el código largo a continuación en el archivo nano. Las primeras 7 líneas tienen archivos de encabezado que es necesario incluir en el archivo del editor para el correcto funcionamiento de la llamada al sistema "fsync". Después de estos archivos de encabezado, hemos definido la función principal con un tipo de retorno entero como "int". Esta función contiene dos parámetros. Uno de ellos es de tipo entero y el otro es una matriz de tipo de caracteres. En el espacio de la función principal, hemos declarado una cadena de tipo de carácter "* str" y le hemos definido un valor de tipo cadena. Después de eso, también hemos declarado dos variables de tipo entero que se utilizarán como descriptores de archivo en líneas posteriores. En la siguiente línea, usamos la función crear llamada al sistema para crear un nuevo archivo llamado "prueba.txt ”y privilegios de lectura y escritura como un desplazamiento en el parámetro. Hemos devuelto el contenido de este archivo a un descriptor de archivo "fd". Hemos definido la declaración if en este código C. Si el valor o puntero de índice del descriptor de archivo es "-1", arrojará el error de llamar a la función creat () para crear un nuevo archivo. El descriptor "fd" menor que "-1" significa que el puntero está en una posición -1.

La función exit () se llamará antes del cierre de la sentencia if. A continuación, hemos estado usando la llamada al método de escritura para recopilar el valor de la cadena del búfer y escribirlo en el archivo "prueba.txt ”usando el descriptor de archivo“ fd ”. Estos datos se han devuelto a la variable "ret". Si el valor de la variable "Ret" es menor que -1, esto significa que los datos no se han escrito en un archivo. Por lo tanto, debe volver a llamar a la función de escritura y salir de la instrucción if. Hemos definido la llamada al sistema fsync y le hemos asignado un descriptor de archivo "fd" como valor de parámetro para sincronizar el descriptor de archivo con un dispositivo de disco. Al llamar al método "cerrar", escribirá rápidamente los datos en una unidad de disco y cerrará el descriptor de archivo. Después de eso, la función principal se cerrará. Guarde este archivo con una tecla de método abreviado de teclado, "Ctrl + S", y cierre el archivo "nuevo.c "con la tecla de método abreviado" Ctrl + X ".

Después de cerrar el archivo nano, ahora es el momento de compilar el código presentado anteriormente. Para la compilación de código, tenemos que usar el compilador gcc. Por lo tanto, ejecute la siguiente consulta gcc para compilar el "nuevo.c "archivo.

$ gcc nuevo.C

Ahora, tenemos que ejecutar este código usando el simple a.comando en el shell como se muestra a continuación. Este comando simplemente ejecutará el código y no devolverá nada, pero los datos se han escrito en una unidad de disco en la parte posterior del proceso.

PS ./a.fuera

Verifique el archivo que se ha creado en el código C, y tiene un valor de cadena en él.

$ prueba de gato.TXT

Conclusión

Hemos discutido brevemente un ejemplo muy simple y lineal de la llamada al sistema fsync para comprender su concepto.Espero que ahora puedas usar fácilmente la llamada al sistema fsync en Linux.

Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...