代码之家  ›  专栏  ›  技术社区  ›  Erik Öjebo

在多线程应用程序中是否有安全使用errno的方法?[复制品]

  •  34
  • Erik Öjebo  · 技术社区  · 16 年前

    这个问题已经有了答案:

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

    2 回复  |  直到 14 年前
        1
  •  34
  •   Greg Hewgill    16 年前

    如果您的标准库支持多线程,那么它可能有一个 #define 那改变 errno 返回线程本地错误返回值的函数调用。但是,要使用它,通常 必须 包括 <errno.h> 而不是依赖 extern 宣言。

    我找到一篇文章 Thread-safety and POSIX.1 这就解决了这个问题。

        2
  •  18
  •   qrdl    16 年前

    man errno 说:

    errno由ISO C标准定义。 为类型的可修改左值 int,并且不能显式 已声明;errno可以是宏。埃尔诺 线程是本地的;将其设置为一个 线程不影响其值 在任何其他线程中。