我使用 STrace 跟踪了 Fedora 16(32 位)中的一些程序,并且正在编写一些 python 脚本来解析跟踪。我从 arch/x86/include/asm/unistd_32.h 获得了 Fedora 中的所有系统调用及其相关编号
但是最后我发现了一些在这个表中不存在的系统调用,我想知道
1. 这怎么可能?
2. 我应该如何为这些系统调用分配一个编号?
以下是其中一些系统调用:
set_th3_area (set_thread_area) socket (socketcall)
sendmsg (sendmmsg)
connect
bind (mbind)
getsocketname
sendto recvmsg (recvmmsg)
其中一些在表格中具有类似的系统调用,我在上面列表中的括号中放置了这些调用。
更新:我发现其中大部分存在于 net/socket.c
int sys_socketcall(int call, unsigned long *args)
int sys_socket(int family, int type, int protocol) int sys_socketpair(int family, int type, int protocol, int usockvec[2])
...
但我仍然无法为这些分配一个号码......
最后我需要一系列系统调用号码