据我所知,系统调用号的定义在 asm/unistd.h 中的格式为 __NR_xxxx,但我找不到 __NR_accept 的定义,为什么?
最佳答案
在许多架构上,接受系统调用号是在<asm/unistd.h>
中.
但是,我怀疑您问的是 i386 或其他“旧”架构。在那种情况下,由于历史原因,实际上并没有 accept
。系统调用——取而代之的是使用多路复用 socketcall
电话号码为 SYS_ACCEPT
的系统调用执行 accept()
.您将找到 __NR_socketcall
的定义在你的<asm/unistd.h>
(以及 SYS_SOCKET
、 SYS_BIND
、 SYS_CONNECT
、 SYS_LISTEN
、 SYS_ACCEPT
等的定义 <linux/net.h>
用于通过 socketcall
复用的各种与套接字相关的系统调用)。
无论如何,对于没有真正 accept
的架构系统调用,你当然也没有系统调用号__NR_accept
.
关于linux - __NR_accept 的定义在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16053791/