在C中定义usleep

时间:2015-09-07 08:26:49

标签: c linux

我正在寻找usleep()的定义。

我在/usr/include/unistd.h找到了声明。但它被宣布为

extern int usleep (__useconds_t __useconds);

在哪里可以找到函数的定义?
(如果有任何其他方式除了grep之外,请提及,以便其他库函数也可以跟随。)

我在Fedora 21中使用gcc版本4.8.3和Linux Kernel 4.1

1 个答案:

答案 0 :(得分:4)

与大多数库函数一样,您没有找到任何定义,因为它已经在标准库中编译,编译器会自动链接到您的对象模块。您可以在Linux发行版提供的源包中以及glibc站点上找到libc的完整源代码(但请记住,某些发行版会添加其补丁)。

至于usleep,您可能无法找到任何有趣的内容it's just a wrapper around nanosleep,而这只是一个系统调用(所以您只需找到一些注册设置,然后是sysenter指令 - 多汁的东西发生在内核模式下)。实际上编辑,因为nanosleep是一个可取消的系统调用,它有点复杂,但重点是