Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于大学作业,我们必须向 Linux 内核添加系统调用。我有“你好,世界”没有问题。在添加更复杂的调用方面,我知道(或至少认为)我不能使用 malloc 之类的 C 函数,但我想知道我可以使用 syscall() 来使用其他系统调用吗?
内核对几乎所有内容都有自己的特定调用。您无权访问系统调用或<sys/xxxx.h>头文件。
<sys/xxxx.h>
例如,是的,您不能使用malloc(),但可以使用kmalloc()
malloc()
kmalloc()
在旧版本的内核 (2.4) 中,您可以使用syscall()via:syscallN()宏。我很确定它已被删除。
syscall()
syscallN()
一般来说syscalls()从内核来说不是一个好主意。真正的系统调用只是用户空间进入内核做某事的一种方式,所以如果你已经在内核中,应该有更好的方法来做你想做的事情。
syscalls()