Método Node.js fs.fdatasync()

El módulo fs proporciona una API para interactuar con el sistema de archivos de una manera estrechamente modelada en torno a las funciones POSIX estándar. Todas las operaciones del sistema de archivos tienen formas sincrónicas y asincrónicas y, en su mayoría, la forma asincrónica toma una devolución de llamada de finalización como último argumento.

El método fs.fdatasync() (agregado en v0.1.96) es una interfaz de programación de aplicaciones incorporada del módulo fs que es similar a fs.fsync(), reduce la actividad del disco para aplicaciones que no requieren que se sincronicen todos los metadatos con el disco Los metadatos son necesarios para permitir la recuperación posterior de datos y deben manejarse correctamente, ya que no elimina los metadatos modificados. 

Sintaxis:

fs.fdatasync(fd, callback);

Se puede acceder al módulo ‘ fs ‘ usando:

const fs = require('fs');

Parámetros: este método acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • fd < entero > : Este parámetro acepta valores de tipo < entero >.
  • devolución de llamada < función > : este parámetro requiere una función de devolución de llamada, y tenga cuidado con las devoluciones de llamada anidadas o el infierno de devolución de llamada.
    • err < Error > : arroja un error, si la función de devolución de llamada no se maneja correctamente. 

Ejemplo 1: Nombre de archivo: index.js

Javascript

// Node.js program to demonstrate the 
// fs.fdatasync() method 
  
// Using require to access fs module 
const fs = require('fs');
  
// Basic demo of fs.fdatasync
fs.fdatasync(1, err => {
    if (err) {
        console.log('error', err);
    }
    else {
        console.log('no-error');
    }
    console.log("Data Sync...");
})
  
// alfa function
function alfa() {
    console.log("Printing callback in "
        + "console from callback alfa... ");
    return "hiii";
}
function data() {
    console.log("Printing callback in "
        + "console from data... ");
}
  
// Open the file
fs.open('filename.txt', "a+", (err, fd) => {
    if (err)
        throw err;
  
    // Write our data
    fs.writeFile(fd, data, (err) => {
  
        // checking error
        if (err)
            throw err;
          
        // Force the file to be flushed
        fs.fdatasync(fd, function alfa(err) {
            if (err)
                throw err
        });
        fs.fdatasync(5, data);
      
        // print after dataSync
        console.log("Writing 'data' in 'filename.txt'... ")
    });
});

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

error [Error: EBADF: bad file descriptor, fdatasync] {
  errno: -4083,
  code: 'EBADF',
  syscall: 'fdatasync'
}
Data Sync...
Writing 'data' in 'filename.txt'...       
Printing callback in console from data... 

Referencia: https://nodejs.org/api/fs.html#fs_fs_fdatasync_fd_callback

Publicación traducida automáticamente

Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *