timeval 和 timespec 都是用来表示时间的结构体,但在Linux中,timespec 更常用于表示时间,而timeval 则是一个旧的结构体,逐渐被timespec 取代。
主要区别如下:
timeval 结构体包含了两个成员变量:tv_sec 表示秒数,tv_usec 表示微秒数。而 timespec 结构体也包含了两个成员变量:tv_sec 表示秒数,tv_nsec 表示纳秒数。
timeval 结构体的成员变量的类型是 long,而 timespec 结构体的成员变量的类型是 time_t 和 long。
timeval 结构体可以表示的最大时间范围为约 71 分钟,而 timespec 结构体可以表示更长的时间范围。
综上所述,timespec 结构体更加灵活和精确,因此在Linux系统中更常用于表示时间。