【发布时间】:2019-10-13 21:28:47
【问题描述】:
我是 Linux 内核开发的新手,我有一个我认为以前没有解决过的问题:
如何在内核函数内部的缓冲区中找到子字符串?
想象一下,我将一个大小合适的文件读入缓冲区(ls -lart 表示文件大小约为 3000)。我想找到并打印该缓冲区中存在子字符串的行。因为我们在内核中,大多数标准的stdio.h 或string.h 函数如strstr 或fgets 不可用。很多当前的堆栈溢出问题,例如:Check substring exists in a string in C 都不那么有效。但是,我确实发现了一个类似的问题:Check for substring in a buffer,但是使用memmem() 是最好的选择吗?虽然我可以作弊,并在我正在查找的缓冲区中手动硬编码,但这不是程序员的方式。
【问题讨论】:
-
我很确定内核提供了大部分字符串函数,包括
strstr。 -
它是“提前谢谢!”,而不是“提前谢谢!”。
-
当我尝试包含
string.h时,我收到一条错误消息,提示没有此类文件或目录。显然,除非我在gcc编译中明确将其作为-I包含在内,否则不会明确添加。这让我觉得这不是应该做的...... -
这不是正确的标题。等一下,让我
grep内核源代码。
标签: c linux string linux-kernel kernel