2013-04-17 128 views
1

据我所知,系统调用数字的定义格式为asm/unistd.h中的__NR_xxxx,但我找不到__NR_accept的定义,为什么?__NR_accept的定义在哪里?

+0

您正在寻找哪种架构,它是#define __NR_accept \t \t \t(__NR_SYSCALL_BASE + 285) – LKL

回答

3

在许多体系结构上,接受系统调用号<asm/unistd.h>

但是,我怀疑你是在问i386还是另一种“旧”的架构。在这种情况下,出于历史原因,系统调用并不真实 - 而是使用系统调用的多路复用socketcall,呼叫号码为SYS_ACCEPT来执行accept()。您<asm/unistd.h>找到__NR_socketcall定义(和SYS_SOCKETSYS_BINDSYS_CONNECTSYS_LISTENSYS_ACCEPT定义等都在<linux/net.h>为通过socketcall复用的各种插槽相关的系统调用)。

在任何情况下,对于没有真实accept系统调用的架构,您当然也不会有系统调用号__NR_accept