__NR_accept的定义在哪里?

时间:2013-04-17 07:11:47

标签: linux sockets linux-kernel system-calls

众所周知,系统调用号的定义在asm / unistd.h中的格式为__NR_xxxx,但我找不到__NR_accept的定义,为什么?

1 个答案:

答案 0 :(得分:3)

在许多体系结构中,<asm/unistd.h>中的接受系统呼叫号码

但是,我怀疑你问的是i386或其他“老”架构。在这种情况下,由于历史原因,实际上没有accept系统调用 - 而是使用多路复用的socketcall系统调用,调用号为SYS_ACCEPT来执行{{ 1}}。您accept()中找到__NR_socketcall的定义(以及<asm/unistd.h>SYS_SOCKETSYS_BIND,{{1的定义SYS_CONNECT中的{},SYS_LISTEN等等,用于通过SYS_ACCEPT多路复用的各种与套接字相关的系统调用。

在任何情况下,对于没有真正<linux/net.h>系统调用的体系结构,您当然也没有系统调用号socketcall