本文分析了localtime函数的实现,及其可能带来的死锁风险。
上篇文章回顾: 一个SRE的日常
————————————————————————————————————
1、localtime函数说明
(1) 函数定义
struct tm *localtime(const time_t *t);复制代码
(2) 函数说明:将1970.01.01 00:00:00 到现在经过的秒数转换为换成真实世界所使用的时间日期。
(3) 返回值:返回结构tm的指针,代表目前的当地时间。
2、localtime函数使用
int main(int argc, char *argv[]) {
time_t t0 = time(NULL);
time_t t1 = t0 + 1800;
struct tm* tm1 = localtime(&t0);
struct tm* tm2 = localtime(&t1);
char str1[50] = {0};
char str2[50] = {0};
strftime(str1, 50, "%H:%M:%S", tm1);
strftime(str2, 50, "%H:%M:%S", tm2);
printf("%s\n", str1);
printf("%s\n", str2);
return 0;
}复制代码
假设当前运行时间为22:00:26,那么上述代码运行结果会是什么呢?