【发布时间】:2014-08-20 07:08:54
【问题描述】:
一个系统调用可以传递多少个参数? 我检查了内核文件 /asm/unistd.h 并没有看到包含超过 4 个参数的系统调用。
【问题讨论】:
-
在实际的系统调用上不重要吗?有些需要更多参数,有些需要更少,有些不需要。
-
为什么要使用超过 4 个参数的系统调用?
-
@KlasLindback:你错了。内核和用户空间之间的系统调用协议(通过 VDSO 或
SYSENTER机器指令)不是 ABI 调用约定。在 x86 上,系统调用不会在堆栈上传递任何东西,只会通过寄存器。
标签: c linux arguments system-calls