歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux/Unix中的可重入函數與線程安全函數

Linux/Unix中的可重入函數與線程安全函數

日期:2017/3/1 10:20:05   编辑:Linux編程

可重入函數也就是異步信號安全函數,一般是除了使用自己棧上的變量以外不依賴於任何環境的purecode(純代碼)

(使用鎖是無法解決可重入問題的,因為當出現信號中斷的,中斷函數裡再次調用此函數就會出現死鎖!)

而線程安全函數,如果使用了靜態數據或者全局數據的話,可以用鎖來將其變為線程安全的。(但無論怎麼樣都無法變為可重入函數(或稱異步信號安全函數))

可重入函數一定是線程安全函數。反之,則不正確。

linux/unix中的異步信號函數(可用在中斷函數中的函數)

摘自《UNPv2》

linux/unix中的線程安全函數

除個別函數外,posix和ANSI C標准定義的所有都是線程安全的

個別函數如下:

摘自《UNPv1》

函數加上後綴_r的一般是非標准的線程安全函數.

Copyright © Linux教程網 All Rights Reserved