c - Sleep() 函数在 C 中计时不正确

标签 c sleep unistd.h

我一直在编写一些简单的东西,例如打印语句,但我想让我的处理器处于 sleep 状态,以免同时有太多打印语句。 我使用了库 unistd.h 并使用了函数 sleep()。 我遇到的问题是,当我要求 sleep 函数 sleep 少于一秒(如 0.9)时,打印的语句数量与我根本没有使用函数 sleep() 一样。 如果我让它 sleep 超过一秒,它就可以正常工作,但我不想 sleep 一秒,我想要更少。

感谢您的阅读和/或帮助。

最佳答案

如果您阅读the sleep manual page您将看到它需要以秒为单位的整数时间。

如果在需要整数值时使用浮点值,编译器将截断它。例如,浮点值 0.9 将被截断为整数 0

所以你所做的实际上是sleep(0)

同时在 the sleep manual page (至少对于 Linux 手册页)您将看到一个指向 the nanosleep function 的链接.

关于c - Sleep() 函数在 C 中计时不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497247/

相关文章:

c - 导入unistd.h后,编译器声明sbrk()是隐式声明。为什么是这样?

c - 在循环中使用 scanf() 扫描 CSV 文件在第一行和第二行开始后停止

c - 段错误(链表的变体)

c - 使用多个排序条件对数组进行排序(快速排序)

c++ - Visual Studio 2010 c++ sleep ()

c - 在 Win10 的 CMake 中找不到

c - 我应该如何初始化 pthread 互斥量?

php/mysql如何设置特定时间的功能

mysql - 为什么 MYSQL Sleep(x) 会永远持续下去?

c - fsync 和 syncfs 有什么区别?