我试图在glibc源代码中找到select()源代码(linux,i386 arch), 但我找不到任何东西(与所说的建筑有关)
有人能指出我的select()源代码吗?
答案 0 :(得分:5)
选择是Linux系统调用,而不是libc函数。它的源代码可以找到here。
libc只有用于调用(执行)linux系统调用的包装器。 select at syscall的包装器是在构建时动态创建的,因为select在syscalls.list文件中。
答案 1 :(得分:3)
select()不是libc的函数,而是内核函数,所以你需要查看内核源代码。
你可以通过查看手册页来告诉它:如果它在第2节中,它是一个内核函数,如果它在第3节中,它是标准C库的函数,在你的情况下是glibc。
编辑:就像其他人正确评论一样(谢谢!),第2节中描述的功能正式称为系统调用,它实际上是对包装操作系统的库的调用实际的通话界面。