【问题标题】:Get file data buffer from Vnode BSD OSx从 Vnode BSD OSx 获取文件数据缓冲区
【发布时间】:2016-11-17 08:34:48
【问题描述】:

我想从 Vnode 对象中提取文件缓冲区数据。

我在 MAC 上使用 BSD,可以在这里找到 Vnode 文档的链接:https://opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/sys/vnode.h

此外,为每个接收到的回调创建一个读取操作,如下所述:https://stackoverflow.com/a/36217596/2452682 由于内核内存限制,不是一个选项。

【问题讨论】:

    标签: macos freebsd vfs


    【解决方案1】:

    “提取文件缓冲区数据”是什么意思?您有什么限制?

    一般来说,使用专门的 fs 特定读取例程是不可避免的 - 文件内容可能一开始甚至不存在于 ram 中。

    那么,你在做什么?

    【讨论】:

    • 我的意思是读取文件的二进制数据。例如,在范围“KAUTH_FILEOP_EXEC”的回调期间,您应该拥有所有可用数据。最后,我想将文件二进制数据传递给用户模式的守护进程。
    • 没有。首先,根据fxr.watson.org/fxr/source/bsd/kern/…,当时只有第一页可能可用。我不知道你真正想做什么,这听起来很错误。如果您需要访问已执行的文件(为什么?),我建议为每个文件创建一个文件描述符并将其传递给侦听器。然后它可以根据需要轻松读取文件。然而,这听起来像是一个非常错误的校验和尝试,它必然会失败——内核并不关心监听器返回什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多