【发布时间】:2011-09-15 09:57:15
【问题描述】:
我正在尝试在 glibc 源代码中查找 select() 源代码(linux、i386 arch), 但我找不到任何东西(与上述架构相关)
谁能指出 select() 源代码?
【问题讨论】:
我正在尝试在 glibc 源代码中查找 select() 源代码(linux、i386 arch), 但我找不到任何东西(与上述架构相关)
谁能指出 select() 源代码?
【问题讨论】:
mh 的回答还不错,但我会尽量具体一点:
select 是 Linux 系统调用,而不是 libc 函数。它的源代码可以在here找到。
libc 只有调用(执行)linux 系统调用的包装器。 select syscall 的包装器是在构建时动态创建的,因为 select 位于 syscalls.list 文件中。
【讨论】:
select() 不是 libc 的函数,而是内核函数,所以需要查看内核源码。
您可以通过查看手册页来判断:如果它在第 2 节中,它是一个内核函数,如果它在第 3 节中,它是标准 C 库的一个函数,在您的例子中是 glibc。
编辑:就像其他人说得对的一样(谢谢!),第 2 节中描述的函数被正式称为 系统调用,它实际上是对包装操作系统的库的调用实际调用界面。
【讨论】: