首页 > 解决方案 > 如何知道 Node.js 中的文件位置?- lseek 的返回值

问题描述

阅读fs.readfs.write,似乎在 Node.js 中没有直接暴露C 函数lseek的接口;当前文件描述符的位置可以在任何参数之前fs.readfs.write通过参数更改position

我强烈怀疑,在低级别,参数position是在读取或写入操作之前通过调用处理的lseek,但是返回值lseek呢?

更具体地说,要获取 C 中的当前文件描述符位置,我可以编写:

int position = lseek(fd, 0, SEEK_CUR);

Node.js 中有没有办法获取相同的信息?

标签: javascriptnode.js

解决方案


似乎没有“本机”方式。大概是因为

在同一个文件上多次使用 fs.write***()而不等待回调是不安全的。

getCurrentPosition对于缓冲IO ,情况更是如此。它应该在调用回调之后write***read***之前返回什么?

bytesRead但是您可以尝试在和的帮助下自己跟踪当前位置bytesWritten。如果是流,则有chunk.length,但不要忘记字符串的编码。


作为旁注......你写道:

考虑新功能我认为这可能是一个有用的信息

如果没有人要求它,而您自己不确定它可以用于什么,那么我认为练习 YAGNI 原则是一个好主意。


推荐阅读