Unix中的包装函数参数有限制吗?

时间:2012-04-09 15:14:25

标签: linux arguments wrapper

更新以澄清:

Wrapper函数定义为在用户模式下调用的函数,它启动对系统调用的调用(在内核模式下)。例如open或printf。

我想知道包装函数可以获得的参数数量是否有任何限制?

我的意思是因为寄存器数量应该是6,但我不确定。我知道系统调用仅限于六个方面。 (我说的是存在更多寄存器的32位和64位)。

感谢

1 个答案:

答案 0 :(得分:0)

  

包装函数定义为在用户模式下调用的函数   启动对系统调用的调用(在内核模式下)。比如打开,   或printf。

通过您自己的定义,对于他们可以接收的参数数量有无限制printf应该马上告诉你。 (但请注意,open本身就是一个系统调用,并且对参数的数量有限制)

但是当谈到系统调用,如openwrite等时,Linux-x86 限制为6个参数Read here至于为何以及如何做到这一点。

以下是关于此

的另一篇SO帖子

What are the calling conventions for UNIX & Linux system calls on x86-64