时间
- Linux
time_t time(time_t *ptr);
int gettimeofday(struct timeval *restrict tp, struct timezone *gz);
int settimeofday(const struct timeval *tv, const struct timezone *gz);
- posix
#include <sys/time.h>
int clock_gettime(clockid_t clock_id, struct timespec *tsp);
int clock_settime(clockid_t clock_id, struct timespec *tsp);
CLOCK_REALTIME: 实时系统时间,和time功能一样,但是返回的时间值精度可能会更高
CLOCK_MONOTONIC: 从系统启动开始算起的单调增长时间,注意不包含suspend时间
CLOCK_PROCESS_CPUTIME_ID: 调用进程的CPU时间
CLOCK_THREAD_CPUTIME_ID: 调用线程的CPU时间
定时器
- Linux
unsigned int alarm(unsigned int seconds);
#include <sys/time.h>
int getitimer(int which, struct itimerval *curr_value);
int setitimer(int which, const struct itimerval *new_value,
struct itimerval *old_value);
- posix
timer_create: 创建了一个定时器。
timer_settime: 启动或者停止一个定时器。
timer_gettime: 返回到下一次到期的剩余时间值。
timer_getoverrun: 返回上次定时器到期时超限值。
timer_delete: 停止并删除一个定时器。
CLOCK_REALTIME
CLOCK_MONOTONIC
CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_CPUTIME_ID
特别需要注意的是posxi接口同时支持alarm timer类型:
CLOCK_REALTIME_ALARM CLOCK_BOOTTIME_ALARM