【发布时间】:2020-08-04 19:31:52
【问题描述】:
我可以传递一个 timeval 结构作为睡眠函数的参数吗?我想这样做是因为 timeval 结构可以变得非常精确,因为你可以控制微秒,我想睡一定的微秒。我可以这样做吗?
【问题讨论】:
-
如果您的问题真的是“我可以将 timeval 作为参数传递给 sleep”,那么答案是“不,你不能”。如果您的问题是“如何在 C 中以微秒分辨率延迟执行”,那么答案是“使用
nanosleep”。请不要问 XY 问题。 -
大多数 POSIX 睡眠函数总是很吵,所以如果你需要一个非常精确的延迟量,你可能需要一个低级的 OS 函数。
-
即使你告诉它要睡多长时间,你真正告诉它的只是至少要睡多长时间,直到它被允许醒来。操作系统/调度程序不需要在时间过去后唤醒它。