【发布时间】:2019-03-27 04:25:23
【问题描述】:
Xcode 的通用内核扩展需要文件解析。
例如,我想读取 A.txt 文件的内容并将其保存为变量。就像你在 c 中使用 FILE、fopen、EOF 一样
如您所见,通用内核扩展不能包含stdio.h,导致使用未声明标识符的错误。
我想知道是否有一种方法可以解析通用内核扩展中的文件,例如 c. (以下代码可用于内核扩展)
FILE *f;
char c;
int index = 0;
f = fopen(filepath, "rt");
while((c = fgetc(f)) != EOF){
fileContent[index] = c;
index++;
}
fileContent[index] = '\0';
【问题讨论】:
-
我想知道如何在内核扩展中做文件I/O。例如,它读取 A.txt 文件的内容并打印出来。
-
出于好奇,我用谷歌搜索了一下,发现例如Kernel Extension development for macOS。我得出的结论是“在 KEXT 中加载文件”,你搞错了。如果您需要将数据带入 KEXT(例如用于配置),那么正确的方法似乎是在开始时提供此数据
kern_return_t Kext_start(kmod_info_t* ki, void* d);或让应用程序通过 内核用户交互 (IO) 设置该数据我>... -
另外值得一提的是:当您试图确定一段代码是否应该是 KEXT 时,默认答案通常是 no。 在Kernel Extension Overview 中找到。我想,你的问题是关于一个玩具项目来了解它是如何工作的。因此,我建议阅读提供的链接,以首先了解 KEXT 有什么好处(以及没有什么好处)。恕我直言,它会读取 A.txt 文件的内容并将其打印出来。 不适合 KEXT 的用途。
标签: c xcode macos file-io kernel-extension