c - C语言中usleep的定义

标签 c linux

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

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

extern int usleep (__useconds_t __useconds);

在哪里可以找到函数的定义?
(请说明除了grep之外还有什么方法,以便其他库函数也可以遵循。)

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

最佳答案

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

至于usleep,你可能找不到任何有趣的东西,it's just a wrapper around nanosleep ,这又只是一个系统调用(所以你只会发现一些寄存器设置,然后是 sysenter 指令——有趣的事情发生在内核模式下)。 编辑 实际上,因为 nanosleep 是一个可取消的系统调用,它有点复杂,但重点是

关于c - C语言中usleep的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32434167/

相关文章:

linux sed脚本使每个单词的首字母大写

c - 在没有 VLA 的情况下传递可变大小的多维数组

c - OpenGL - glVertex2f(x, y) 中的 x 和 y 之间的映射到屏幕整数坐标

ruby-on-rails - 无法在 Linux Mint 中安装 curb gem

c - Linux 执行程序; ls 无法访问 |,没有那个文件或目录

linux - bash如何将一个目录中的大量zip文件移动到指定数量的多个子目录中?

java - 适用于任何语言的不同 gearman 库

c++ - 如何在 C 中反转以下算法

c - 处理结构体指针数组的动态增长

java - 如何在 Ubuntu 上安装 Intellij IDEA?