真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言open函數(shù)可重入 c語言opendir函數(shù)

我要用C語言寫一個可重入函數(shù),請問要避開哪些東西?

可以使用全局變量、靜態(tài)變量。關(guān)鍵是不是“只讀”。如果只讀,那怎么用都行。如果有寫的操作,最好避開,實在避不開就要用信號量等機制防止多線程沖突。

創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作與策劃設(shè)計,永興網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:永興等地區(qū)。永興做網(wǎng)站價格咨詢:18980820575

另外就是調(diào)用的函數(shù)要線程安全, thread-safe.具體那些函數(shù)線程安全,需要查閱手冊。

單片機C語言設(shè)計里說的可重入函數(shù)是什么?和不可重入函數(shù)的區(qū)別是什么?

一、可重入函數(shù)

1)什么是可重入性?

可重入(reentrant)函數(shù)可以由多于一個任務(wù)并發(fā)使用,而不必擔心數(shù)據(jù)錯誤。相反, 不可重入(non-reentrant)函數(shù)不能由超過一個任務(wù)所共享,除非能確保函數(shù)的互斥(或者使用信號量,或者在代碼的關(guān)鍵部分禁用中斷)??芍厝?函數(shù)可以在任意時刻被中斷,稍后再繼續(xù)運行,不會丟失數(shù)據(jù)。可重入函數(shù)要么使用本地變量,要么在使用全局變量時保護自己的數(shù)據(jù)。

2)可重入函數(shù):

不為連續(xù)的調(diào)用持有靜態(tài)數(shù)據(jù)。

不返回指向靜態(tài)數(shù)據(jù)的指針;所有數(shù)據(jù)都由函數(shù)的調(diào)用者提供。

使用本地數(shù)據(jù),或者通過制作全局數(shù)據(jù)的本地拷貝來保護全局數(shù)據(jù)。

如果必須訪問全局變量,記住利用互斥信號量來保護全局變量。

絕不調(diào)用任何不可重入函數(shù)。

3)不可重入函數(shù):

函數(shù)中使用了靜態(tài)變量,無論是全局靜態(tài)變量還是局部靜態(tài)變量。

函數(shù)返回靜態(tài)變量。

函數(shù)中調(diào)用了不可重入函數(shù)。

函數(shù)體內(nèi)使用了靜態(tài)的數(shù)據(jù)結(jié)構(gòu);

函數(shù)體內(nèi)調(diào)用了malloc()或者free()函數(shù);

函數(shù)體內(nèi)調(diào)用了其他標準I/O函數(shù)。

函數(shù)是singleton中的成員函數(shù)而且使用了不使用線程獨立存儲的成員變量 。

總的來說,如果一個函數(shù)在重入條件下使用了未受保護的共享的資源,那么它是不可重入的。

什么是C語言的可重入函數(shù)?怎么使用?

假如,main()中正在調(diào)用A()函數(shù).在此期間,有一中斷,在中斷服務(wù)程序中還要調(diào)用A().

如果這個A()可以被調(diào)用就算是可重入

反之算不可重入.

可重入與不可重入的區(qū)別在這個函數(shù)的內(nèi)容是否會相互沖突...例如A()中有個靜態(tài)變量...就不可以..


文章題目:c語言open函數(shù)可重入 c語言opendir函數(shù)
標題鏈接:http://weahome.cn/article/doshhpc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部