c - C 函数 time() 如何处理小数秒?

标签 c

time() 函数将返回自 1970 年以来的秒数。我想知道它如何对返回的秒数进行舍入。

比如100.4s,返回100还是101?

有明确的定义吗?

最佳答案

ISO C 标准并没有说明太多。它只说 time() 返回

the implementation’s best approximation to the current calendar time

结果是 time_t 类型,它是一个“能够表示时间”的实数类型(整数或 float )。

许多系统将 time_t 实现为有符号整数类型,表示自 1970-01-01 00:00:00 GMT 以来的秒数。

在我的 Ubuntu 系统上进行的快速实验(比较 time()gettimeofday() 返回的值)表明 time() 返回的值 被截断,因此例如如果高精度时间为 1514866171.750058,则 time() 函数将返回 1514866171。 ISO C 和 POSIX 都不能保证这一点,但我希望它在任何类 UNIX 系统上都能保持一致。

关于c - C 函数 time() 如何处理小数秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054495/

相关文章:

c - 段错误 11?

c - 在客户端 C 中多路复用 stdin 和 socket

c - 有没有办法在 C 中将数字范围定义为常量?

C:如何将一系列变量应用于函数?

c - for循环初学理解

c - 使用 sleep() 延迟打印字符

C 前向报关查询

c - 如何在 C 中打印毫秒数?

c - 如何不让终端显示任何内容?

c - C 中导致错误的宏参数