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 指针,您正在为其提供要填充的结构。因此它不能被覆盖。