gpt4 book ai didi

javascript - 是否可以在 nodejs 中倒带文件描述符游标?

转载 作者:数据小太阳 更新时间:2023-10-29 05:33:04 27 4
gpt4 key购买 nike

这就是我在完美世界中会做的事情:

fs.open('somepath', 'r+', function(err, fd) {
fs.write(fd, 'somedata', function(err, written, string) {
fs.rewind(fd, 0) //this doesn't exist
})
})

这是我当前的实现:

return async.waterfall([
function(next) {
//opening a file descriptor to write some data
return fs.open('somepath', 'w+', next)
},
function(fd, next) {
//writing the data
return fs.write(fd, 'somedata', function(err, written, string) {
return next(null, fd)
})
},
function(fd, next) {
//closing the file descriptor
return fs.close(fd, next)
},
function(next) {
//open again to reset cursor position
return fs.open('somepath', 'r', next)
}
], function(err, fd) {
//fd cursor is now at beginning of the file
})

我尝试在不关闭 fd 的情况下重置位置:

fs.read(fd, new Buffer(0), 0, 0, 0, fn)

但这会抛出 错误:偏移量超出范围

有没有一种方法可以在不执行这种可怕的hack的情况下重置光标?

/e: The offset is out of bounds 错误来自this exception .通过将缓冲区大小设置为 1 可以轻松修复,但它不会倒回光标。可能是因为我们要求函数不读取任何内容。

最佳答案

今天的答案是不在核心里,纯javascript加不进去。

有一个扩展 node-fs-ext添加了一个 seek 函数来移动 fd 光标。这是在 C++ 中完成的 here .

相关Stackoverflow question .

关于javascript - 是否可以在 nodejs 中倒带文件描述符游标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com