亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Golang 中使用 go-fuse 包

在 Golang 中使用 go-fuse 包

Go
慕無忌1623718 2021-08-23 17:03:30
您好,我即將將我的兩個幾乎可以工作的簡單保險絲文件系統從bazillion 保險絲移植到 go-fuse。 go-fuse api似乎更復雜。問題是:在NewServer(),使用哪個 RawFileSystem?如何實現 read、readdir 等的回調?在哪里使用WaitMount()?什么是DeleteNotify(),EntryNotify()?
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

好的,我找到了解決方案


1. 創建一個包含 nodefs.Node 的結構體:


    type my_root struct {nodefs.Node}

初始化它


    my = &my_root{Node: nodefs.NewDefaultNode()}

建立連接和原始文件系統


    con := nodefs.NewFileSystemConnector(my, nil)

    raw := fuse.NewRawFileSystem(con.RawFS())

最后,啟動保險絲 fs


    server, err := fuse.NewServer(raw, f.dir, optz)

像這樣:


func (my_root) OpenDir(context *fuse.Context) ([]fuse.DirEntry, fuse.Status) {}

func (my_root) Lookup(out *fuse.Attr, name string, context *fuse.Context) (node *nodefs.Inode, code fuse.Status)

在第 1 步之后,像這樣:


server.WaitMount()

我不需要這個。


查看完整回答
反對 回復 2021-08-23
  • 1 回答
  • 0 關注
  • 270 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號