我试图在glibc源代码中找到
select()
源代码(Linux,i386 arch),但我找不到与所述架构相关的任何内容。
有人可以指点我
select()
源代码吗?
mh 的回答非常好,但我会尝试更具体:
select 是 Linux 系统调用,而不是 libc 函数。它的源代码可以在here找到。
libc 只有用于调用(执行)linux 系统调用的包装器。 select 系统调用的包装器是在构建时动态创建的,因为 select 位于 syscalls.list 文件中。
select()不是libc的函数,而是内核函数,所以你需要查看内核源码。
你可以通过查看手册页来了解这一点:如果它在第 2 节中,它是一个内核函数,如果它在第 3 节中,它是标准 C 库的函数,在你的例子中是 glibc。
编辑:就像其他一些人正确评论的那样(谢谢!),第 2 节中描述的函数正式称为“系统调用”,它实际上是对包装操作系统实际调用接口的库的调用。