如果您正在编写一个使用errno来指示错误类型的系统/库调用的多线程应用程序,是否有安全的方法来使用errno?如果没有,是否有其他方式可以指示发生的错误类型,而不仅仅是发生错误?有没有办法在多线程应用程序中安全地使用errno?
33
A
回答
34
如果您的标准库是多线程感知的,那么它可能有一个#define
,它将errno
更改为返回线程本地错误返回值的函数调用。但是,要使用此功能,您一般需要包括<errno.h>
,而不是依靠extern
声明。
我发现了一篇文章Thread-safety and POSIX.1,它解决了这个问题。
16
man errno
说:
错误号是由ISO C标准 定义为 int类型的修改的左值,并且不能明确地声明 ; errno可能是一个宏。 errno 是线程局部的;将其设置为一个 线程在任何其他线程中都不会影响其值 。
相关问题
- 1. 有没有办法让phonegap应用程序更安全?
- 2. 有没有办法在多个线程中使用asyncio.Queue?
- 3. 有没有办法在我的应用程序中使用mstest
- 4. 有没有办法多线程的SqlDataReader?
- 5. 线程安全应用程序中的线程安全
- 6. 在多线程应用程序中使用非线程安全的DLL
- 7. 有没有办法在Java应用程序中完全禁用RMI?
- 8. 有没有办法知道我的应用程序目前有多少安装?
- 9. 在使用boost的多线程C++程序中,有没有办法获得指向当前线程的指针?
- 10. 在多线程应用程序中使用LinkedHashMap的get()方法是否安全
- 11. 有没有办法让所有的应用程序安装在用户的iPhone?
- 12. GUI在多线程应用程序的Wxwidgets中没有响应
- 13. MSVC errno线程安全
- 14. 有没有办法在python中重新使用线程工作?
- 15. 有没有办法将线程安全地作为参数传递?
- 16. 有没有办法让一个多客户端服务器应用程序不使用多个线程?
- 17. 有没有办法允许Delphi应用程序使用Hazelcast?
- 18. iPhone应用程序中的安全漏洞有多安全?
- 19. 有没有办法在Blue Prism中“激活”html应用程序?
- 20. 有没有办法在应用程序中查找对象?
- 21. 有没有办法在javaFX应用程序中集成html IFrame
- 22. 有没有办法在ClickOnce应用程序中重置IsFirstRun?
- 23. 有没有办法找出应用程序安装了多长时间
- 24. 有没有办法在C#中将代码标记为非线程安全?
- 25. 有没有办法在Windows 10通用应用程序中使用restsharp?
- 26. 有没有办法将PKI用户证书安装到HTA应用程序中?
- 27. 有没有办法远程查看Swing应用程序?
- 28. 有没有办法在.NET Framework 2中使用C#应用程序中的linq?
- 29. 有没有办法在JVM中选择性地调试单个应用程序(或几个应用程序)?
- 30. 在iOS应用程序中调用“秘密”URL有多安全?
谢谢!在/usr/include/bits/errno.h中的快速检查证实,在我的Ubundu机器上,使用线程时,errno确实被定义为per-thread。 – 2009-01-16 08:04:36