知道了syscall调用号之后还不算完,还要搞清楚2件事:
1 每种调用号需要传递哪些参数;
2 调用如何传递参数以及结果如何返回;
第一个问题的答案是:
在linux系统中某个程序执行时进行的系统调用可以通过strace命令来查看,solaris中对应的命令为dtrace,而mac os x中可以通过类似的dtruss命令来查看。当进程已经处于 D 状态(uninterruptible sleep)时,strace 也帮不上忙。这时候可以通过:
cat /proc/<PID>/syscall
来查看。(详细内容可以到http://www.jb51.net/article/50923.htm查看)
32位的系统调用表的参数可以到
http://syscalls.kernelgrok.com/
或