2014-10-31 27 views
-1

我在用戶級的文件使用FUSE工作,我的要求是,「文件大小」:如何改變/假冒的C代碼飛

  • 當我發出讀File A,我想疊加另一個文件的內容(如File B),並將File B的內容作爲File A的內容。
  • 我已經通過捕捉它在我的保險絲閱讀和內部閱讀File B和複製緩衝區的內容到緩衝區中通過了File A並沒有做任何實際的讀取呼籲File A實現它的緩衝區修改。所以,File A呼叫返回與File B的內容複製在其緩衝區中。
  • 另外,File AFile B相比尺寸更小。

當使用調試器檢查,File A緩衝區的內容看起來很好(包含全File B內容),但是當它被顯示(與Vi說)爲File A,我能看到的只有一顆顆字符作爲File A「但由於File B的大小更大,即使返回的緩衝區爲File A(複製的File B數據)有更多顯示,整個數據也不會顯示。這是因爲File A的尺寸較小,並且在達到File A的文件大小的字符計數時顯示終止。

我試圖調查struct stat,但它是一個只讀的東西,它顯示我的尺寸爲File A,它比File B小。

struct stat stat1; 
stat(fileA, &stat1); 

所以,我的問題是,我該怎麼辦假/改變File A上即時的大小,使其能夠顯示整個數據(得到疊加,因爲File B是更大)。

回答

0

您將無法做到這一點,因爲許多應用程序在讀取文件之前請求文件大小,然後只讀取報告的數據量。