开发者

Is it true that there's no system call with more than 6 parameters in linux?

开发者 https://www.devze.com 2023-02-18 18:09 出处:网络
In unistd.h 开发者_运维百科there\'s _syscall0~_syscall6: _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6)

In unistd.h 开发者_运维百科there's _syscall0~_syscall6:

_syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6)

So is my conclusion right or not?


Quoted :

Ancient history

Earlier versions of Linux could handle only four or five system call parameters, and therefore the system calls select() (5 parameters) and mmap() (6 parameters) used to have a single parameter that was a pointer to a parameter block in memory. Since Linux 1.3.0 five parameters are supported (and the earlier select with memory block was renamed old_select), and since Linux 2.3.31 six parameters are supported (and the earlier mmap with memory block was succeeded by the new mmap2).


Looks like that function accepts 7 params (0-6) but this webpage says 6

From here: http://www.win.tue.nl/~aeb/linux/lk/lk-4.html

Earlier versions of Linux could handle only four or five system call parameters, and therefore the system calls select() (5 parameters) and mmap() (6 parameters) used to have a single parameter that was a pointer to a parameter block in memory. Since Linux 1.3.0 five parameters are supported (and the earlier select with memory block was renamed old_select), and since Linux 2.3.31 six parameters are supported (and the earlier mmap with memory block was succeeded by the new mmap2).

0

精彩评论

暂无评论...
验证码 换一张
取 消