2011-10-17 18 views
4

我讀過libc中的正則表達式函數應該是線程安全的,但我也讀過早期版本中的情況並非如此。正則表達式函數像「regexec」線程在libc版本2.2.5中安全嗎?

我現在必須工作在一個嵌入式系統上,該系統具有舊的libc版本2.2.5。

所以我不確定像「regexec」這樣的函數是線程安全的還是它們應該被互斥鎖保護?

如果有人對此有任何線索,我將不勝感激。我也不太確定我應該測試什麼來驗證這些函數的線程安全性。

+0

[Are posix regcomp and regexec threadsafe?在具體的,在GNU libc?](http://stackoverflow.com/questions/4404574/are-posix-regcomp-and-regexec-threadsafe-in-specific-on-gnu-libc) – shodanex

+0

我的問題是:「是10年前的版本2.2.5線程安全嗎?「?我該如何檢查。 – Nikko

回答

2

我在最近的libc版本(2.13)中搜索了正則表達式關鍵字的NEWS文件。沒有任何關於線程安全的,但下面的註釋:

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中沒有併發性錯誤。

+0

非常有趣的閱讀,謝謝 – Nikko