Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
linux 中的一些函数由 _r (例如 gmtime_r )标记为“线程安全”,但大多数系统调用没有被标记,也没有在手册页中提及。所以我的问题是:我如何知道 linux 系统调用是否是线程安全的?谢谢!
我认为您的意思是“库功能”;由于对线程的内核端数据进行操作,系统调用应该是线程安全的。
答案是:查看相关功能的手册页。“_r”变体是专门为不可重入的函数提供的,这意味着传递给它们的额外参数在非“_r”版本中被静态声明和修改。
大多数 glibc 应该是 IIRC 线程安全的,但您始终需要查看手册页;或者,如果你不相信这些,代码本身。没有什么灵丹妙药可以免除您理解您正在编程的接口的责任。