Sleep()函数在C中没有正确计时

时间:2016-09-14 18:26:27

标签: c sleep unistd.h

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

请你帮忙阅读和/或帮助。

1 个答案:

答案 0 :(得分:5)

如果您阅读the sleep manual page,您会看到以秒为单位的时间为整数

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

所以你正在做的事情是sleep(0)

同样在the sleep manual page上(至少在Linux手册页上),您会看到指向the nanosleep function的链接。