0
我必須讀取正在寫入的內核模塊內的緩衝區中的整個文件。我開始以下寫作here如何在內核模塊中使用vfs_read讀取整個文件?
但我不清楚如何檢索文件大小,爲陣列緩衝區分配內存。我無法找到有關VFS功能的良好文檔。 (我在3.2內核上工作)。
這怎麼能實現呢?由於
我必須讀取正在寫入的內核模塊內的緩衝區中的整個文件。我開始以下寫作here如何在內核模塊中使用vfs_read讀取整個文件?
但我不清楚如何檢索文件大小,爲陣列緩衝區分配內存。我無法找到有關VFS功能的良好文檔。 (我在3.2內核上工作)。
這怎麼能實現呢?由於
通過使用vfs_stat()
或vfs_fstat
在How do you get the size of a file in the linux kernel?
謝謝回答,我用vfs_stat()。現在我從struct kstat中獲得「大小」。似乎它是loff_t(long long)類型。 因此,例如,用%lld打印值,我看到「/ bin/ls」:-131941060952272。 這是不可能的。我究竟做錯了什麼? – user3376554
檢查你的參數是否正確,並且沒有'vfs_stat()設置的錯誤' – Vishal
在https://stackoverflow.com/questions/19195560/whats-wrong-with-vfs-stat-call上已經存在一個例子,你應在http://www.linuxjournal.com/node/8110/print – Vishal