在libc 2.2.5版本中,正则表达式是否像“regexec”线程一样安全?

时间:2011-10-17 09:39:36

标签: regex linux gcc thread-safety libc

我已经读过libc中的正则表达式函数应该是线程安全的,但是我也读过早期版本的情况并非如此。

我现在必须处理具有旧libc版本2.2.5的嵌入式系统。

所以我不确定像“regexec”这样的函数是否是线程安全的,或者它们是否应该被互斥锁保护?

如果有人对此有任何线索,我将不胜感激。我也不太确定我应该测试什么来验证这些函数的线程安全性。

1 个答案:

答案 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中没有并发错误。