В unistd.h есть _syscall0 ~ _syscall6:
unistd.h
_syscall0
_syscall6
_syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6)
Так мой вывод правильный или нет?
Цитируется:
Древняя история
Более ранние версии Linux могли обрабатывать только четыре или пять параметров системных вызовов, и, следовательно, системные вызовы select () (5 параметров) и mmap() (6 параметров) имел обыкновение иметь единственный параметр, который был указателем на блок параметров в памяти.Начиная с Linux 1.3.0 поддерживаются пять параметров (и более ранний выбор с блоком памяти был переименован в old_select), а с Linux 2.3.31 поддерживаются шесть параметров (и более ранний mmap с блоком памяти сменился новым mmap2).
Похоже, что эта функция принимает 7 параметров (0-6), но на этой веб-странице написано 6
Отсюда: http://www.win.tue.nl/~aeb/linux/lk/lk-4.html
Ранние версии Linux могли обрабатывать только четыре или пять системных вызовов параметры, и, следовательно, система вызовы select () (5 параметров) и mmap () (6 параметров) используется для один параметр, который был указателем на блок параметров в памяти. поскольку Linux 1.3.0 пять параметров поддерживается (и ранее выберите с блок памяти был переименован в old_select), а начиная с Linux 2.3.31 шесть параметров поддерживаются (и более ранние с блоком памяти сменилось новый mmap2).