FUSE中的readdir和opendir有什么区别
What is the difference between readdir and opendir in FUSE
在libfuse documentation中有readdir
和opendir
作为定义的操作。
根据我的发现,readdir
将列出目录的内容。如果是这样,opendir
的作用是什么?文档指出这会打开目录,但如果它不只是列出其内容,那么打开目录实际上意味着什么?
opendir 不做任何列表。它的目的是打开一个文件句柄,这是可以使用 readdir 完成列表的界面。它会检查目录路径是否存在、调用者是否有打开权限等,因此它可能 return 一个错误,以防无法进行列表。
opendir 提供的句柄用作列表状态上下文 - 它保存当前列表偏移量,可以使用 求.
两者的关系对应open和read。此外,这些 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
在libfuse documentation中有readdir
和opendir
作为定义的操作。
根据我的发现,readdir
将列出目录的内容。如果是这样,opendir
的作用是什么?文档指出这会打开目录,但如果它不只是列出其内容,那么打开目录实际上意味着什么?
opendir 不做任何列表。它的目的是打开一个文件句柄,这是可以使用 readdir 完成列表的界面。它会检查目录路径是否存在、调用者是否有打开权限等,因此它可能 return 一个错误,以防无法进行列表。
opendir 提供的句柄用作列表状态上下文 - 它保存当前列表偏移量,可以使用 求.
两者的关系对应open和read。此外,这些 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