English 中文(简体)
在多线程应用程序中,有没有一种安全地使用errno的方法?[重复]
原标题:
  • 时间:2009-01-16 07:46:50
  •  标签:

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

最佳回答

如果你的标准库支持多线程,则它可能有一个#define,可以将errno更改为函数调用来返回线程本地的错误返回值。然而,要使用此功能,通常就必须包含<errno.h>,而不能仅仅依赖于extern声明。

我发现了一篇文章《线程安全和POSIX.1》,它正好回答了这个问题。

问题回答

“man errno” 的意思是:

errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other thread.





相关问题
热门标签