是strtol,strtoll,strtod真正安全的
Are strtol, strtoll, strtod really thread safe?
我知道如何将字符串转换为int,float ...从来都不是一个新问题。经过一些文章后,建议我使用strtol,strtoll,strtod,所以我仔细研究了这些功能。
尽管strtol在其人页面上声称线程安全性,但它会修改errno,所以它真的安全吗?
如果没有,在C (不是C 11)中进行此类转换作业并保持线程安全的正确方法是什么?
来自 errno
man页面:
errno由ISO C标准定义为可修改的lvalue 类型int,不得明确声明;Errno可能是宏。 errno是线程 - 局部;将其设置为一个线程不会影响其 在任何其他线程中的价值。
设置errno
的函数只能设置为单个线程,因此它的线程安全。
是的,因为 errno
本身不是普通的普通全局变量: errno
是线程安全。
这是在errno
线程安全的回答吗?。
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 虚拟决赛作为安全
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 通过网络、跨平台传递std::变体是否安全
- 在std::thread中,joinable()然后join()线程安全吗
- 使用std::istream::peek()总是安全的吗
- 从值小于256的uint16到uint8的Endian安全转换
- 在c++队列中使用pop和visit实现线程安全
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 全局变量 多读取器 一个写入器多线程安全?
- 安全到标准:移动会员?
- AcquireCredentialsHandleA() 返回 PFX 文件的0x8009030e(安全包中没有可用的凭据
- 共享队列的线程安全
- boost::文件系统::recursive_directory_iterator多线程安全
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 是strtol,strtoll,strtod真正安全的