【发布时间】:2011-08-02 20:10:25
【问题描述】:
我正在使用struct timespec 结构,这里是:
struct timespec {
time_t tv_sec; /* Seconds */
long tv_nsec; /* Nanoseconds */
};
事情是,用户将输入每个成员的值,我想检查一下最大值。用户可以输入的值。
我可以取最大值吗? time_t 的值作为 int 最大值?即INT_MAX 用于tv_sec 和LONG_MAX(在limits.h 中定义)用于tv_nsec?两者的最小可接受值是多少?是零吗?我猜不能接受负值?补充一下,这些值将在计时器中使用。
P.S:time_t 的 typedef 在哪里?未能及时找到。h。
【问题讨论】:
-
你甚至不能依赖
time_t是一个整数类型;根据 POSIX,它可能是浮点数。 pubs.opengroup.org/onlinepubs/9699919799/basedefs/… -
@larsmans:您的链接显示:“
time_t应为整数类型。” -
POSIX 2004 说:“time_t 和 clock_t 应为整数或实浮点类型。” — 这意味着 time_t 是整数是一个相当新的要求,不应依赖几年。