Linux常用的时间相关函数
获取当前时间:
time(0) ------ time_t ------ 秒
gettimeofday ------ timeval ------ 微妙
可以认为这两个函数都是线程安全的,获取到的时间戳是不包括闰秒的
获取当地时间:
localtime_r函数,_r后缀是线程安全的
定时器相关函数
timerfd_create timerfd_gettime timerfd_settime (改用文件描述符方式取代了信号)
关于定时器接口的演进参考文章:Linux 下定时器的实现方式分析
由于基于文件描述符,使得该接口可以支持 select(2),poll(2) 等异步接口,使得定时器的实现和使用更加的方便,更重要的是,支持 fork(2),exec(2) 这样多进程的语义,因此,可以用在多线程环境之中,它们的使用比 POSIX timer [ 2 ]更加的灵活,其根本原因在于定时器的管理统一到了 unix/linux 基本哲学之一 ---- “一切皆文件”之下。