第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 FUSE 以目錄形式命名管道

使用 FUSE 以目錄形式命名管道

Go
ITMISS 2023-07-26 19:29:28
我想創(chuàng)建一個 FUSE 文件系統(tǒng),它接受對文件系統(tǒng)內(nèi)任何路徑的任何類型的寫入操作。有點像命名管道,但采用目錄的形式。echo test > bar         # consumes "test"echo test > bar/foo     # consumes "test", even though the directory "bar" hasn't been createdecho test > x/y/z/test  # consumes "test", even though the directories "x/y/z" haven't been created我使用bazil.org/fuse進行實施。我面臨的問題是,當應用程序想要寫入foo/bar我的文件系統(tǒng)內(nèi)部時,它會檢查是否foo是目錄,然后檢查是否bar是文件。不幸的是,我無法預先知道foo應該是文件還是目錄。我的Attr函數(shù)如下所示:func (d *Dir) Attr(ctx context.Context, a *fuse.Attr) error {        a.Inode = 1        a.Mode = os.ModeDir | 0755}此代碼特定于目錄節(jié)點類型,因為os.ModeDir. 我希望這適用于目錄或文件。有辦法實現(xiàn)我想要的嗎?去保險絲
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻1821條經(jīng)驗 獲得超5個贊

我面臨的問題是,當應用程序想要寫入foo/bar我的文件系統(tǒng)內(nèi)部時,它會檢查是否foo是目錄,然后檢查是否bar是文件。不幸的是,我無法預先知道foo應該是文件還是目錄。

考慮到這些限制,解決您的問題是不可能的。

文件系統(tǒng)節(jié)點可以是文件,也可以是目錄;有時兩者都不是,但絕不會同時兩者。因為您的 FUSE 驅(qū)動程序無法提前知道執(zhí)行請求的應用程序是否getattr意味著在節(jié)點內(nèi)遞歸,直到它實際嘗試這樣做,所以您無法知道它是否應該偽裝成文件或目錄。

您最好的選擇似乎是:

  • 將特定于應用程序的虛擬目錄結(jié)構(gòu)硬編碼到您的 FUSE 驅(qū)動程序中

  • 在 FUSE 驅(qū)動程序中實施特定于應用程序的啟發(fā)式方法

  • 讓您的 FUSE 驅(qū)動程序記住getattr請求并通過反復試驗構(gòu)建虛擬目錄樹(并不斷重新運行應用程序直到它起作用)


查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號