linux 中的某些函数通过 _r 标记为“线程安全”(例如 gmtime_r ) 但是大多数系统调用都没有被标记,也没有在联机帮助页中提及。 所以我的问题是: 我如何知道 linux 系统调用是否是线程安全的? 谢谢!
最佳答案
我想你的意思是“库函数”;由于对线程的内核端数据进行操作,系统调用应该是线程安全的。
答案是:查看相关函数的手册页。 “_r”变体是专门为不可重入的函数提供的,这意味着传递给它们的额外参数是在非“_r”版本中静态声明和修改的。
大多数 glibc 应该是,IIRC,线程安全的,但是你总是需要检查手册页;或者,如果您不信任那些代码本身。没有 Elixir 可以免除您理解编程所针对的接口(interface)的责任。
关于c - 我怎么知道 linux 系统调用是否线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12025640/