对于给定的 Ubuntu 机器,我如何找出系统调用号及其对应的系统调用函数名?此外,这些在同一版本的 32 位和 64 位机器上会有所不同吗?
我正在专门为“精确”而尝试这个。
答案1
看一下/usr/include/x86_64-linux-gnu/asm/unistd.h
(64 位 Ubuntu)。我认为这就是你要找的。
此文件又包含其他文件/usr/include/x86_64-linux-gnu/asm/
,如unistd_32.h
或unistd_64.h
,您可以在其中找到实际的系统调用号。因此,回答您的第二个问题 - 是的,这些数字可能在特定 Ubuntu 版本的 32 位和 64 位版本中有所不同。
编辑:请注意,上述路径指的是 64 位 Ubuntu。对于 32 位 Ubuntu,情况会略有不同。我这里没有一个可以检查的,但/usr/include/asm/unistd.h
可能是一个不错的猜测。如果全部失败,请运行locate unistd.h
。