【发布时间】:2013-04-09 20:19:02
【问题描述】:
据我所知,系统调用号的定义是asm/unistd.h中的__NR_xxxx格式,但我找不到__NR_accept的定义,为什么?
【问题讨论】:
-
您正在寻找哪种架构,在 arm 中是#define __NR_accept (__NR_SYSCALL_BASE+285)
标签: linux sockets linux-kernel system-calls
据我所知,系统调用号的定义是asm/unistd.h中的__NR_xxxx格式,但我找不到__NR_accept的定义,为什么?
【问题讨论】:
标签: linux sockets linux-kernel system-calls
在许多架构上,接受系统调用号是在<asm/unistd.h>。
但是,我怀疑您询问的是 i386 或其他“较旧”架构。在这种情况下,由于历史原因,实际上并没有accept 系统调用——相反,使用带有SYS_ACCEPT 调用号的多路复用socketcall 系统调用来执行accept()。您将在您的<asm/unistd.h> 中找到__NR_socketcall 的定义(以及@987654334 中@987654334 中SYS_SOCKET、SYS_BIND、SYS_CONNECT、SYS_LISTEN、SYS_ACCEPT 等的定义@ 用于通过socketcall 复用的各种与套接字相关的系统调用)。
在任何情况下,对于没有真正的accept 系统调用的架构,您当然也不会有系统调用号__NR_accept。
【讨论】: