微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FUSE 中的 readdir 和 opendir 有什么区别

如何解决FUSE 中的 readdir 和 opendir 有什么区别

libfuse documentation 中有 readdiropendir 作为定义的操作。

据我所知,readdir列出目录内容的那个。如果是这样,opendir功能是什么?文档指出这会打开目录,但如果不是简单地列出其内容,那么打开目录实际上意味着什么?

解决方法

opendir 不做任何列表。它的目的是打开一个文件句柄,这是可以使用 readdir 完成列表的界面。它会检查目录路径是否存在、调用者是否具有打开权限等,因此如果无法列出,它可能会返回错误。

opendir 提供的句柄用作列表状态上下文 - 它保存当前列表偏移量,并且可以使用 seek 操纵它进行倒带或向前跳转.

两者的关系对应于openread。此外,这些 Fuse 函数实现了真正的 OS 功能:

https://www.gnu.org/software/libc/manual/html_node/Opening-a-Directory.html

https://www.gnu.org/software/libc/manual/html_node/Reading_002fClosing-Directory.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。