如何查找系统调用次数?

如何查找系统调用次数?

每台机器的系统调用编号是否不同?这是否取决于处理器,我的意思是i586和i386会有区别吗?

如果每台机器的编号都不同,您如何找到您机器的编号?

一个常见的位置是 /usr/include/asm*,但该文件夹不存在。

答案1

在大多数操作系统上,数字位于/usr/include/sys/syscall.h

一般情况下可以打电话syscall(number, rest of parameters)

请注意,某些“系统调用”可能不在 syscalls.h 中,因为多个系统调用接口是由单个系统调用实现的,该系统调用使用子号码从一组调用中选择通话。

系统调用号仅对特定操作系统的特定版本有效。

在Solaris上,没有稳定的系统调用接口,但有libc之上的稳定接口。这完全符合 POSIX 要求,因为 POSIX 故意不区分系统调用和库函数。

相关内容