Dan*_*cci 8 javascript node.js
读取fs.read和fs.write,似乎在 Node.js 中没有直接暴露C 函数lseek 的接口;当前文件描述符位置可以在 any 之前fs.read或fs.write通过参数更改position。
我强烈怀疑,在低级别,参数position是lseek在读取或写入操作之前通过调用处理的,但是 的返回值lseek呢?
更具体地说,要获取 C 中的当前文件描述符位置,我可以这样写:
int position = lseek(fd, 0, SEEK_CUR);
Run Code Online (Sandbox Code Playgroud)
Node.js 有没有办法获得相同的信息?
似乎没有“本地”方法可以做到这一点。大概是因为
在同一个文件上多次使用 fs.write***()而不等待回调是不安全的。
getCurrentPosition对于缓冲IO之类的东西来说更是如此。在调用回调之后write***或之前它应该返回什么?read***
但您可以尝试借助bytesRead和自行跟踪当前位置bytesWritten。在流的情况下,有chunk.length,但不要忘记在字符串的情况下的编码。
作为旁注......你写道:
考虑新功能我认为这可能是有用的信息
如果没有人要求它,并且你自己也不确定它可以用来做什么,那么我认为运用 YAGNI 原则是一个好主意。