在 C 中创建内核时,我可以使用 `strlen()`、`strcpy()`、`strrev()`、`strcmp()` 或 `strcat()` 吗?

Can I use `strlen()`, `strcpy()`, `strrev()`, `strcmp()` or `strcat()` when creating a kernel in C?

我正在尝试制作一个具有打印字符、绘图等功能的内核。这些功能稍后将与汇编链接。我想知道我是否仍然可以使用这些功能: strlen() strcpy() strrev() strcmp() strcat()

无论如何,我从 osdev.org 中找到了这段代码,我将以此为基础构建它,它具有 strlen() 函数,尽管我找不到创建其他函数的方法如果这个问题我在标题中列出。

size_t strlen(const char* str) 
{
    size_t len = 0;
    while (str[len])
        len++;
    return len;
}

这个库可以工作吗#include <linux/string.h><string.h> 库不能在内核中使用。 https://elixir.bootlin.com/linux/latest/source/include/linux/string.h#L48

查看 link,其中有一个 strcmp 函数和您需要的其他函数。 我是新手,所以我不是 100% 确定。如果我说错了请指正。

我在试验后发现,即使在用 C 语言制作内核时,您实际上也可以使用一些库,例如 stdint.hstdbool.h。虽然这可以做到,但我已经实现了我自己的上述功能版本...