标签: regex linux gcc thread-safety libc
我已经读过libc中的正则表达式函数应该是线程安全的,但是我也读过早期版本的情况并非如此。
我现在必须处理具有旧libc版本2.2.5的嵌入式系统。
所以我不确定像“regexec”这样的函数是否是线程安全的,或者它们是否应该被互斥锁保护?
如果有人对此有任何线索,我将不胜感激。我也不太确定我应该测试什么来验证这些函数的线程安全性。
答案 0 :(得分:2)
我在最近的libc版本(2.13)中搜索了NEWS文件中的regex关键字。线程安全没有任何内容,但请注意以下内容:
Version 2.3 ... Isamu Hasegawa contributed a completely new and POSIX-conformant implementation of regex.
但是根据this,在2.3之后出现了一些并发问题,因此2.2.5的内容看起来并不那么好
根据这个非常相似的question POSIX一致性意味着regexec必须是线程安全的,但这并不意味着早期版本的libc中没有并发错误。