Node.js fs.fdatasync()方法
原文:https://www.geeksforgeeks.org/node-js-fs-fdatasync-method/
fs 模块提供了一个应用编程接口,用于以一种围绕标准 POSIX 函数紧密建模的方式与文件系统交互。所有文件系统操作都有同步和异步形式,异步形式大多以完成回调作为最后一个参数。
fs.fdatasync() (在 v0.1.96 中添加)方法是 fs 模块的内置应用程序编程接口,类似于 fs.fsync(),它减少了不需要所有元数据与磁盘同步的应用程序的磁盘活动。需要元数据来允许正确处理后续数据检索,因为它不会刷新已修改的元数据。
语法:
fs.fdatasync(fd, callback);
可以使用
const fs = require('fs');
访问“ fs 模块
参数:该方法接受两个参数,如上所述,如下所述:
- fd < 整数 > : 此参数接受< 整数 >类型值。
- 回调 < 函数 > :此参数需要一个回调函数,谨防嵌套回调或回调地狱。
- 错误 < 错误 > :如果回调函数处理不当,抛出错误。
示例 1: 文件名: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'... ")
});
});
运行 index.js 文件使用以下命令:
node index.js
输出:
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...
参考:https://nodejs.org/api/fs.html#fs_fs_fdatasync_fd_callback
T30】
版权属于:月萌API www.moonapi.com,转载请注明出处