qputenv是否线程安全?Qt5.15环境变量设置的线程安全疑问
关于Qt5.15环境变量操作线程安全性的疑问
相关文档说明
libc 文档
多线程程序中不允许修改环境变量。getenv和secure_getenv函数可在多线程程序中安全使用。
Qt5.15 qgetenv 文档
Qt环境操作函数是线程安全的,但要求不得直接调用getenv和putenv等C库等效函数。
[...]
注意:此函数是线程安全的。
Qt5.15 qputenv 文档
注意:qputenv()的引入是因为标准C库的putenv()在VC2005及后续版本中被弃用。qputenv()在VC平台使用替代函数,在其他所有平台调用标准C库的实现。
疑问
结合上述文档内容,我认为在Linux平台下qputenv会调用C库的putenv,而后者并非线程安全,这似乎和qgetenv文档中“Qt环境操作函数是线程安全的”表述存在矛盾。我是不是忽略了什么细节?Qt5.15中是否存在线程安全的环境变量设置方式?
内容的提问来源于stack exchange,提问作者Sophie
相关产品推荐
相关产品推荐

