当前位置:  开发笔记 > 程序员 > 正文

有没有办法在多线程应用程序中安全地使用errno?

如何解决《有没有办法在多线程应用程序中安全地使用errno?》经验,为你挑选了2个好方法。

如果您正在编写一个使用系统/库调用的多线程应用程序,它使用errno来指示错误类型,那么使用errno是否有安全的方法?如果没有,是否有其他方法来指示发生的错误类型而不仅仅是发生了错误?



1> Greg Hewgill..:

如果您的标准库是多线程识别的,那么它可能会#define更改errno为函数调用,该函数调用返回线程局部错误返回值.但是,要使用它,通常必须包括,而不是依赖extern声明.

我发现了一篇文章Thread-safety和POSIX.1来解决这个问题.



2> qrdl..:

man errno 说:

errno由ISO C标准定义为int类型的可修改左值,不得显式声明; errno可能是一个宏.errno是线程本地的; 在一个线程中设置它不会影响其在任何其他线程中的值.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有