我正在尝试在Red Hat 8.0中添加一个新的系统调用,我对该机制的某些方面感到困惑。我一直在关注本指南:http://www.linuxjournal.com/article/3326,其中详细介绍了更新entry.S
和unistd.h
中系统调用表的步骤。
但是,我似乎无法弄清楚编译器如何从这些信息中实际找到实现系统调用的位置。显然有一些涉及#include
的东西,但我找不到包含的任何迹象,也没有找到代码中的许多系统调用。我需要做什么才能找到我的系统调用?
答案 0 :(得分:5)
C库提供的功能恰好与系统调用类似。实际发生的是调用C库函数,然后调用系统。
如果添加新的系统调用,那么为了使其易于使用,您需要将其添加到C库并重新编译它。
或者你可以使用C库提供的系统调用函数和宏:syscall和_syscall。
请尝试man syscall
和man _syscall
查看详细信息。