首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >标准C mktime线程在linux上安全吗?

标准C mktime线程在linux上安全吗?
EN

Stack Overflow用户
提问于 2013-08-21 10:33:21
回答 1查看 4.6K关注 0票数 9

mktime的手册页面没有提到mktime的线程安全性,但是它确实提到了这一点,这使得它看起来像线程不安全的

调用mktime()还使用有关当前时区的信息设置外部变量tzname。

我知道在Linux上,mktime调用tzset来设置tzname,这是char*[]:

外焦2;

而tzset将读取环境变量TZ和文件/etc/localtime。因此,除非mktime使用互斥锁来保护所有这些操作,否则我看不出它如何是线程安全的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-21 10:45:17

的确,mktime有副作用,但在大多数程序中,副作用应该是无害的。

根据POSIX,副作用就像调用了tzset一样,这反过来只是将时区信息从TZ环境变量复制到C字符串的tzname数组中。如果应用程序不更改TZ,那么并发调用mktime()就没有问题。

除此之外,GNU的tzset does use a mutex保护tzname的完整性。这是一个质量的实施补充,没有保证的标准.

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18355101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档