dongxuanyi3406 2017-09-14 18:20
浏览 86
已采纳

保险丝打开文件

Created a FUSE filesystem using go-fuse : nodefs. Everything works except files are not opened.

Basically the file node is like:

type SomeFileNode struct {
    nodefs.Node
    content string
}

func (this *SomeFileNode) Open(flags uint32, context *fuse.Context) (nodefs.File, fuse.Status) {
    return nodefs.NewDataFile([]byte(this.content)), fuse.OK
}

I expect to cat that file, but nothing is printed to stdout.

What am I missing?

Full repro code:

func main() {
    mountPoint := "/some/mountpoint"
    fs := &SomeFs{Root: &SomeRootNode{nodefs.NewDefaultNode()}}
    server, _, err := nodefs.MountRoot(mountPoint, fs.Root, nil)
    if err != nil {
        log.Fatalln("Mount fail")
        os.Exit(1)
    }
    server.Serve()
}


type SomeFs struct {
    Root *SomeRootNode
}

type SomeRootNode struct {
    nodefs.Node
}

type SomeFileNode struct {
    nodefs.Node
    content string
}

func (this *SomeRootNode) OnMount(c *nodefs.FileSystemConnector) {
    this.Inode().NewChild("leaf", false, &SomeFileNode{Node: nodefs.NewDefaultNode(), content: "hello"})
}

func (this *SomeFileNode) Open(flags uint32, context *fuse.Context) (nodefs.File, fuse.Status) {
    return nodefs.NewDataFile([]byte(this.content)), fuse.OK
}
  • 写回答

1条回答 默认 最新

  • dougan4884 2017-09-15 10:08
    关注

    Was answered here: https://github.com/hanwen/go-fuse/issues/186

    need to implement GetAttr and report Size.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法