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系统中更常用于表示时间。