当尝试从未打开的文件读取时,我的libfuse文件系统应该返回哪个系统错误?

问题描述 投票:0回答:1

我正在实现一个libfuse文件系统。打开文件时,我读取文件属性并将其存储在以生成的文件句柄为键的哈希表中。这有两个目的:维护打开文件句柄的集合,并缓存在打开过程中检索到的信息。

当然,没有什么能阻止用户代码尝试传递无效的文件句柄,即从未打开的文件中读取。

我可以从error codes函数中返回多个read,但我不清楚在这种情况下哪个是预期的。

linux fuse
1个回答
0
投票

如您所见,in the POSIX standard,要返回的正确值为EBADF

[[EBADF] fildes参数不是为打开的有效文件描述符阅读。

也就是说,如果用户代码传递了无效的文件句柄,那么Linux内核将在您之前或将其融合为问题之前将EBADF返回给用户。

© www.soinside.com 2019 - 2024. All rights reserved.