我正在寻找usleep()
的定义。
我在/usr/include/unistd.h
找到了声明。但它被宣布为
extern int usleep (__useconds_t __useconds);
在哪里可以找到函数的定义?
(如果有任何其他方式除了grep之外,请提及,以便其他库函数也可以跟随。)
我在Fedora 21中使用gcc版本4.8.3和Linux Kernel 4.1
答案 0 :(得分:4)
与大多数库函数一样,您没有找到任何定义,因为它已经在标准库中编译,编译器会自动链接到您的对象模块。您可以在Linux发行版提供的源包中以及glibc站点上找到libc的完整源代码(但请记住,某些发行版会添加其补丁)。
至于usleep
,您可能无法找到任何有趣的内容it's just a wrapper around nanosleep
,而这只是一个系统调用(所以您只需找到一些注册设置,然后是sysenter
指令 - 多汁的东西发生在内核模式下)。实际上编辑,因为nanosleep
是一个可取消的系统调用,它有点复杂,但重点是