我已经读过libc中的正则表达式函数应该是线程安全的,但我也读过早期版本中的情况并非如此.
我现在必须使用具有旧libc版本2.2.5的嵌入式系统.
所以我不确定像“regexec”这样的函数是否是线程安全的,或者它们是否应该被互斥锁保护?
如果有人对此有任何线索,我将不胜感激.我也不太确定我应该测试什么以验证这些功能的线程安全性.
最佳答案 我在最近的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中没有并发错误.