stat(2) 线程安全吗?
Is stat(2) thread safe?
C库的很多函数都明确标注了线程安全或者非线程安全。例如,当我查看 gmtime(3) 的手册时,有一个很好的 table 显示这些函数中哪些是线程安全的,哪些不是。
查看 stat(2) 函数的手册页,它没有说明一种方法。除非另有说明,否则函数是否应该是线程安全的?
阅读 POSIX Safety Concept 并没有真正清楚地说明未标记为不安全的函数是安全的。也许我漏掉了一句话?
Thread Safety 上的 POSIX 页面说,除此处列出的函数外,所有函数都是线程安全的。 stat()
不在列表中,也没有任何变体(lstat()
、fstat_at()
、fstat()
)。所以它应该是线程安全的。
gmtime
例程return一个静态指针,这意味着它可以被其他调用覆盖。
Stat
不是 return 指针,您正在为其提供要填充的结构。因此它不能被覆盖。
C库的很多函数都明确标注了线程安全或者非线程安全。例如,当我查看 gmtime(3) 的手册时,有一个很好的 table 显示这些函数中哪些是线程安全的,哪些不是。
查看 stat(2) 函数的手册页,它没有说明一种方法。除非另有说明,否则函数是否应该是线程安全的?
阅读 POSIX Safety Concept 并没有真正清楚地说明未标记为不安全的函数是安全的。也许我漏掉了一句话?
Thread Safety 上的 POSIX 页面说,除此处列出的函数外,所有函数都是线程安全的。 stat()
不在列表中,也没有任何变体(lstat()
、fstat_at()
、fstat()
)。所以它应该是线程安全的。
gmtime
例程return一个静态指针,这意味着它可以被其他调用覆盖。
Stat
不是 return 指针,您正在为其提供要填充的结构。因此它不能被覆盖。