【问题标题】:How to read entire file with vfs_read in kernel module?如何在内核模块中使用 vfs_read 读取整个文件?
【发布时间】:2017-07-11 09:20:26
【问题描述】:

我必须在我正在编写的内核模块内的缓冲区中读取整个文件。我开始关注here

但是,我不清楚如何检索文件大小,为数组缓冲区分配内存。我找不到关于 VFS 功能的良好文档。 (我正在开发 3.2 内核)。

如何做到这一点?谢谢

【问题讨论】:

    标签: linux-kernel readfile kernel-module filesize vfs


    【解决方案1】:

    通过使用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。这是不可能的。我做错了什么?
    • 检查你的论点是否正确,有没有vfs_stat()设置的错误
    • stackoverflow.com/questions/19195560/… 已经存在一个示例,您应该在linuxjournal.com/node/8110/print 获得所有详细信息
    • -131941060952272 看起来像一个指针。您可能必须取消引用它才能获得实际值。
    猜你喜欢
    • 1970-01-01
    • 2021-11-20
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    相关资源
    最近更新 更多