【问题标题】:Input/output error with fuse filesystem on linux?linux上fuse文件系统的输入/输出错误?
【发布时间】:2018-03-15 03:24:11
【问题描述】:

我正在尝试将我的文件系统挂载到一个空目录。目录是/home/test。我已经编写了以下函数:

  • 访问
  • getattr
  • 读取目录
  • statfs
  • mkdir
  • rmdir
  • 创建
  • 阅读

我使用命令./fusetest /home/test -d 来挂载我的文件系统。当我尝试/home/test目录下的ls时,我得到错误信息:

ls: cannot open directory .: Input/output error"

如下图所示:

调试信息在这里:

有什么问题,我该如何解决?

【问题讨论】:

  • 您可能应该显示一些函数的代码。 openread 似乎是最佳候选人。此外,$? 的值可能有助于从 shell 中提取错误代码。
  • 对不起,我没有理解你的意思。因为我用c++实现了一个DFS。代码太多了。以及如何使用 $ 的值?非常感谢!
  • 好吧,你需要为 Stack Overflow 提供一些东西才能使用。如果没有相关代码,有人需要一个圆珠来冒险猜测。你有源代码的 GitHub 吗? echo $? 打印最后一个错误。在你的情况下,它可能会给你一个解决问题的立足点,或者它可能完全无关紧要。
  • 哦,我知道你的意思。代码至今未在github上打开。

标签: linux fuse microsoft-distributed-file-system


【解决方案1】:

您的调试信息未显示 os.ModeDir 信息。我猜您没有在单位类型代码和所需格式之间进行二进制转换。 Golang 是这样的(因为您的问题没有指定您使用的语言或库):

attr.Mode = os.ModeDir | uint32(0644)

【讨论】:

    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 2013-03-13
    • 2015-01-07
    相关资源
    最近更新 更多