freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

進程間通信ipc(interprocesscommunication)-資料下載頁

2025-08-01 14:15本頁面
  

【正文】 加讀鎖,失敗立即返回 define readw_lock(fd,offset,whence,len) \ lock_reg (fd, F_SETLKW, F_RDLCK, offset, whence, len) 加讀鎖,直到成功才返回 define write_lock(fd,offset,whence,len) \ lock_reg (fd, F_SETLK, F_WRLCK, offset, whence, len) 加寫鎖,失敗立即返回 define writew_lock(fd,offset,whence,len) \ lock_reg (fd, F_SETLKW, F_WRLCK, offset, whence, len) 加寫鎖,直到成功才返回 define un_lock(fd,offset,whence,len) \ lock_reg (fd, F_SETLK, F_UNLCK, offset, whence, len) 解鎖 共享內(nèi)存 ? 共享內(nèi)存允許兩個或多個進程共享一給定的存儲區(qū)。因為數(shù)據(jù)不需要在進程之間復(fù)制,所以這是最快的一種 IPC。使用共享內(nèi)存的唯一竅門是多個進程之間對一給定存儲區(qū)的同步存取。若進程 A將數(shù)據(jù)放入共享內(nèi)存區(qū),則在進程 A做完這一操作之前,進程 B不應(yīng)當去取這些數(shù)據(jù)。通常,信號量 /記錄鎖被用來實現(xiàn)對共享內(nèi)存存取的同步。 include sys/ include sys/ include sys/ define SHM_SIZE 100000 define SHM_MODE (SHM_R|SHM_W) int main(void) { int shmid。 char *shmptr。 if ((shmid=shmget(IPC_PRIVATE, SHM_SIZE, SHM_MODE)) 0){ perror(―shmget error‖)。 exit(1)。 } if ( (shmptr = shmat(shmid, 0, 0)) == (void *)1 ) { perror(―shmat error‖)。 exit(1)。 } if (shmctl(shmid, IPC_RMID, 0) 0) { perror(―shmctl error‖)。 exit(1)。 } exit(0)。 } 一、創(chuàng)建共享內(nèi)存 define SHM_SIZE 100000 define SHM_MODE (SHM_R|SHM_W) shmid=shmget(IPC_PRIVATE,SHM_SIZE,SHM_MODE); 創(chuàng)建大小為 SHM_SIZE的可讀可寫的共享內(nèi)存段,返回標識符 shmid。 二、連接共享內(nèi)存段到進程地址空間 shmptr = shmat(shmid, 0, 0); 把共享內(nèi)存段連接到由內(nèi)核選擇的進程第一個可用地址上。接下來,進程通過指針shmptr就可以象訪問普通內(nèi)存段一樣使用共享內(nèi)存段了。 三、釋放共享內(nèi)存 shmctl(shmid, IPC_RMID, 0); ? 前面結(jié)合具體的例子介紹了信號量和共享內(nèi)存,這些例子都是最常用的方法, 《 進程間通信 .doc》 有更詳細更深入的說明。 ? 例子中都是以 IPC_PRIVATE作為關(guān)鍵字創(chuàng)建 IPC的,對于有父子關(guān)系的進程,可以令父進程創(chuàng)建 IPC,并把 IPC標識符說明成全局變量(對于共享內(nèi)存也可以把共享內(nèi)存地址說明成全局變量),子進程通過繼承取得這些值,并使用它們進行 IPC。 ? 對于獨立進程間的通信,一般要指定一個約定的 key,一個進程以它為關(guān)鍵字創(chuàng)建IPC,其他進程以它為關(guān)鍵字引用 IPC(創(chuàng)建和引用 IPC的接口是一樣的)。如果創(chuàng)建IPC的進程確需以 IPC_PRIVATE作為關(guān)鍵字,那么必須以某種方式將 IPC標識符傳遞給其他進程,比如記文件。 小結(jié) ? 本章詳細說明了進程間通信的多種形式;管道、命名管道( FIFO)以及另外三種 IPC形式,通常稱之為系統(tǒng) V IPC——消息隊列、信號量和共享內(nèi)存。信號量實際上是同步原語而不是 IPC,常用于共享資源的同步存取,例如共享內(nèi)存。 ? 提出下列建議:學(xué)會使用管道和 FIFO,因為在大量應(yīng)用程序中仍可有效地使用這兩種基本技術(shù)。在新的應(yīng)用程序中,要盡可能避免使用消息隊列以及信號量,而應(yīng)當考慮套接口和記錄鎖,因為它們與 Linux內(nèi)核的其他部分集成得要好得多,并且通過知識的復(fù)用(例如既把套接口用于網(wǎng)絡(luò)通信,也用來在進程間傳遞消息),可以減輕記憶的負擔(dān),也有利于更熟練更準確更深入的使用。共享內(nèi)存有其應(yīng)用場合。 關(guān)于服務(wù)器調(diào)試 ? 用加打印語句的方法 ? 對后臺運行的服務(wù)器,把信息打印到約定的日志文件里。服務(wù)器初始化的時候,以添加寫的方式打開日志文件,進程結(jié)束自動關(guān)閉打開的文件。 ? 信息分級: debug、 verbose、 error,可以定義成共享內(nèi)存變量。 ? 信息組成:時間、進程號或任務(wù)名、正文 char *ctime(const time_t *timep)。 ―Fri Mar 26 15:09:54 2022\n‖ ? 實時查看信息: tail –f 日志文件 謝謝 !
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1