系統(tǒng)調(diào)用相關(guān)函數(shù)

系統(tǒng)調(diào)用相關(guān)函數(shù)

ID:32391618

大?。?07.50 KB

頁(yè)數(shù):23頁(yè)

時(shí)間:2019-02-04

系統(tǒng)調(diào)用相關(guān)函數(shù)_第1頁(yè)
系統(tǒng)調(diào)用相關(guān)函數(shù)_第2頁(yè)
系統(tǒng)調(diào)用相關(guān)函數(shù)_第3頁(yè)
系統(tǒng)調(diào)用相關(guān)函數(shù)_第4頁(yè)
系統(tǒng)調(diào)用相關(guān)函數(shù)_第5頁(yè)
資源描述:

《系統(tǒng)調(diào)用相關(guān)函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、窗體頂端索引:1.fork、exec和exit對(duì)IPC對(duì)象的影響2.fcntl記錄鎖3.管道和FIFO的屬性4.管道和FIFO的限制5.pipe函數(shù)6.popen和pclose7.mkfifo函數(shù)8.SystemVIPC共性描述9.msqid_ds結(jié)構(gòu)10.msgget函數(shù)11.msgsnd函數(shù)12.msgrcv函數(shù)13.msgctl函數(shù)14.在SystemV消息隊(duì)列上使用select和poll15.semid_ds結(jié)構(gòu)16.semget函數(shù)17.semop函數(shù)18.semctl函數(shù)19.shmid_ds結(jié)構(gòu)20.

2、shmget函數(shù)21.shmat函數(shù)22.shmdt函數(shù)23.shmctl函數(shù)24.mmap函數(shù)25.munmap函數(shù)26.msync函數(shù)27.匿名內(nèi)存映射?1.fork、exec和exit對(duì)IPC對(duì)象的影響IPC類型forkexec_exit????管道和FIFO子進(jìn)程取得父進(jìn)程的所有打開(kāi)著的描述字的拷貝所有打開(kāi)的描述字繼續(xù)打開(kāi)著,除非已設(shè)置描述字的FD_CLOEXEC位關(guān)閉所有打開(kāi)著的描述字,最后一個(gè)關(guān)閉時(shí)刪除管道或FIFO中殘留的所有數(shù)據(jù)Posix消息隊(duì)列子進(jìn)程取得父進(jìn)程的所有打開(kāi)著的消息隊(duì)列描述字的拷貝關(guān)閉

3、所有打開(kāi)著的消息隊(duì)列描述字關(guān)閉所有打開(kāi)著的消息隊(duì)列描述字SystemV消息隊(duì)列沒(méi)有效果沒(méi)有效果沒(méi)有效果Posix互斥鎖、條件變量、讀寫(xiě)鎖、基于內(nèi)存的信號(hào)燈若駐留在共享內(nèi)存中而且具有進(jìn)程間共享屬性,則共享除非在繼續(xù)打開(kāi)著的共享內(nèi)存中而且具有進(jìn)程間共享屬性,否則消失除非在繼續(xù)打開(kāi)著的共享內(nèi)存中而且具有進(jìn)程間共享屬性,否則消失Posix有名信號(hào)燈父進(jìn)程中所有打開(kāi)著的有名信號(hào)燈在子進(jìn)程中繼續(xù)打開(kāi)著關(guān)閉所有打開(kāi)著的有名信號(hào)燈關(guān)閉所有打開(kāi)著的有名信號(hào)燈SystemV信號(hào)燈子進(jìn)程中所有semadj值都置為0所有semadj值都攜

4、入新程序中所有semadj值都加到相應(yīng)的信號(hào)燈上fcntl記錄上鎖子進(jìn)程不繼承父進(jìn)程持有的鎖只要描述字繼續(xù)打開(kāi)著,鎖就不變解開(kāi)由進(jìn)程持有的所有未處理的鎖mmap內(nèi)存映射和Posix共享內(nèi)存區(qū)父進(jìn)程中的內(nèi)存映射存留到子進(jìn)程中去除內(nèi)存映射去除內(nèi)存映射SystemV共享內(nèi)存區(qū)附接著的共享內(nèi)存區(qū)在子進(jìn)程中繼續(xù)附接著斷開(kāi)所有附接著的共享內(nèi)存區(qū)斷開(kāi)所有附接著的共享內(nèi)存區(qū)門(mén)所有門(mén)描述字都應(yīng)關(guān)閉,因?yàn)樗鼈儎?chuàng)建時(shí)設(shè)置了關(guān)閉所有打開(kāi)著的描述字子進(jìn)程取得父進(jìn)程的所有打開(kāi)著的描述字,但是客戶在門(mén)描述字上激活其過(guò)程時(shí),只有父進(jìn)程是服務(wù)器FD

5、_CLOEXEC位?2.fcntl記錄鎖Unix內(nèi)核沒(méi)有文件內(nèi)記錄的概念,這里的記錄是指字節(jié)范圍(byterange)。Posix記錄上鎖定義了一個(gè)特殊的字節(jié)范圍以指定整個(gè)文件,它的其始偏移為0(文件的開(kāi)頭),長(zhǎng)度為0。文件上鎖是記錄上鎖的一個(gè)特例。粒度(granularity)用于標(biāo)記能被鎖住的對(duì)象的大小。對(duì)于Posix記錄上鎖來(lái)說(shuō),粒度就是單個(gè)字節(jié)。記錄上鎖的Posix接口是fcntl函數(shù):#includeintfcntl(intfd,intcmd,…/*structflock*arg*/);

6、返回:成功時(shí)取決于cmd,出錯(cuò)時(shí)為-1。對(duì)應(yīng)記錄上鎖的第三個(gè)參數(shù)arg是指向某個(gè)flock結(jié)構(gòu)的指針:structflock{????shortl_type;/*F_RDLCK,F_WRLCK,F_UNLCK*/????shortl_whence;/*SEEK_SET,SEEK_CUR,SEEK_END*/????off_tl_start;/*relativestartingoffsetinbytes*/????off_tl_len;/*#bytes;0meansuntilend-of-file*/????pid_

7、tpid;/*PIDreturnedbyF_GETLK*/};cmd命令有三個(gè):·????????F_SETLK:獲?。╨_type為F_RDLCK或F_WRLCK)或釋放(l_type為F_UNLCK)由arg指向的flock結(jié)構(gòu)所描述的鎖。如果該鎖無(wú)法授予調(diào)用進(jìn)程,該函數(shù)就立即返回一個(gè)EACCES或EAGAIN錯(cuò)誤而不阻塞?!????????F_SETLKW:該命令與上一命令相似,不同在于,若所請(qǐng)求的鎖無(wú)法授予,則調(diào)用進(jìn)程將阻塞到該鎖能夠授予為止。(W的意思是“等待”)·????????F_GETLK:檢查由a

8、rg指向的鎖以確定是否有某個(gè)已存在的鎖會(huì)妨礙新鎖授予調(diào)用進(jìn)程。如果當(dāng)前沒(méi)有這樣的鎖存在,由arg指向的flock結(jié)構(gòu)的l_type被置為F_UNLCK。否則,關(guān)于這個(gè)已存在鎖的信息將在由arg指向的flock結(jié)構(gòu)中返回(該結(jié)構(gòu)的內(nèi)容由fcntl函數(shù)覆寫(xiě)),其中包含持有該鎖的進(jìn)程ID。l_whence成員有三個(gè)值:·????????SEEK_SET:l_sta

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。