使用通用内核扩展(macOS)中的文件系统

时间:2016-10-22 16:21:11

标签: c macos file-io macos-sierra kernel-extension

例如,我想创建一个名为“example.txt”的文件并编写“Hello world!”进去。从理论上讲,我可以这样写:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/systm.h>
#include <mach/mach_types.h>

kern_return_t examplekext_start(kmod_info_t * ki, void *d);
kern_return_t examplekext_stop(kmod_info_t *ki, void *d);

kern_return_t examplekext_start(kmod_info_t * ki, void *d)
{
    char const *hw = "Hello world!";
    FILE *xmpl = fopen("/example.txt", "w");
    int *s = fwrite(hw, strlen(hw), 1, xmpl);
    if (s == 1) return KERN_SUCCESS;
    else return KERN_FAILURE;
}

kern_return_t examplekext_stop(kmod_info_t *ki, void *d)
{
    return KERN_SUCCESS;
}

但是,如果我会尝试构建&amp;运行类似的东西,我会收到一个错误:“找不到stdio.h文件”。那么,问题是我该怎么做?是否有另一个lib用于处理文件系统或类似的东西?或者从内核扩展中无法做到这一点?

0 个答案:

没有答案