javascript - 如何知道 Node.js 中的文件位置?- lseek 的返回值
问题描述
阅读fs.read和fs.write,似乎在 Node.js 中没有直接暴露C 函数lseek的接口;当前文件描述符的位置可以在任何参数之前fs.read
或fs.write
通过参数更改position
。
我强烈怀疑,在低级别,参数position
是在读取或写入操作之前通过调用处理的lseek
,但是返回值lseek
呢?
更具体地说,要获取 C 中的当前文件描述符位置,我可以编写:
int position = lseek(fd, 0, SEEK_CUR);
Node.js 中有没有办法获取相同的信息?
解决方案
似乎没有“本机”方式。大概是因为
在同一个文件上多次使用 fs.write***()而不等待回调是不安全的。
getCurrentPosition
对于缓冲IO ,情况更是如此。它应该在调用回调之后write***
或read***
之前返回什么?
bytesRead
但是您可以尝试在和的帮助下自己跟踪当前位置bytesWritten
。如果是流,则有chunk.length
,但不要忘记字符串的编码。
作为旁注......你写道:
考虑新功能我认为这可能是一个有用的信息
如果没有人要求它,而您自己不确定它可以用于什么,那么我认为练习 YAGNI 原则是一个好主意。
推荐阅读
- python - pyqtgraph 中的图像由于缩放而被隐藏
- c - 如何使用指针将输入函数中的 2 个 int,1 个浮点变量输入传递给主函数?
- sql - 如何在 CASE STATEMENT (SQL ORACLE) 中使用 Unique 或 Distinct?
- node.js - 如何从 Mongodb 服务中的 _id 中提取 $oid?
- c# - 在 Typescript 中使用全局 C# 变量
- ruby-on-rails - 与嵌套表单字段的条件关联未正确验证
- python - Python Tkinter-小窗口在主窗口之前短暂弹出
- python - Random Forest warm_start = True 在运行评分函数时给出值错误 - 操作数不能一起广播
- python-3.x - 如何删除特定列表中不存在的列表字典中的项目?
- java - 如何使用 Intent 设置警报 选择警报的完整日期(包括日、月)