程序間的通訊:ipc(in process connect)
訊息佇列,共享記憶體,訊號量統稱sytrem-v ipc
int key = ftok(const *char pathname,int proj_id )
引數一:路徑 引數二:任意整數
返回值:生成的健值(具有唯一性) 失敗返回-1
1.共享記憶體(shm)
使用步驟:
(1)獲取共享記憶體物件的id.
int id=shmget(key_t key,size_t size,int shm***)//健值,大小,許可權
返回值:成功返回共享記憶體id,失敗返回-1
(2)將共享記憶體對映到虛擬空間的某個區域
void *=shmat(int id,null,int shm***)//共享記憶體id,null—表示讓系統自動分配,記憶體許可權,一般用0
不能設定成只寫
(3)不使用時,解除對映
shmdt(const void *shmaddr)
(4)不需要就刪除.
ipcs用法
ipcs -a 是預設的輸出資訊 列印出當前系統中所有的程序間通訊方式的資訊
ipcs -m 列印出使用共享記憶體進行程序間通訊的資訊
ipcs -q 列印出使用訊息佇列進行程序間通訊的資訊
ipcs -s 列印出使用訊號進行程序間通訊的資訊
輸出格式的控制
ipcs -t 輸出資訊的詳細變化時間
2.訊息佇列
(1)建立訊息佇列
msgget(hey_t key,int msg***)
(2)準備存放訊息的結構體
struct msgbuf
(3)傳送訊息
msgsend()/msgrecv()
3.執行緒
(1)建立執行緒
pthread_t tid;
pthread_create(&tid,null,fnn,null)
執行緒的退出
pthread_exit(null)
執行緒屬性
-lpthread
(2)設定分離屬性
pthread_attr_setdetachstate()//引數一:執行緒屬性變數 引數二:分離/結合
4.訊號量
(1)建立訊號量
semget(key, nsem,sem***)//健值,訊號量個數,許可權
(2)將訊號量取出和放入(pv操作)
semop(int semid,struct sembuf sops,unsigned nsops)
開始是接合屬性,遇到pthread_join 後主執行緒阻塞,然後子執行緒設定分離屬性,然後主線程等待子執行緒結束後才會繼續執行
第三天,努力!!
第三天了,不錯不錯,基本上按自己的計畫進行著,雖然工作還是沒找到,不過也不再那麼的怕了,慢慢來吧,其實也沒太多時間了 今天早上十點才,真的覺得自己太不像話了,不過我一覺醒來就那個時候了,我的手機每天的鬧鐘是7 30不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...
杭州第三天
一樣的時間起床,一樣的時間去吃早飯,坐在一樣的位置享受完幾乎一樣的陽光和一根煙以後,我開始了在杭州ut的又一天工作。上午按照計畫重新安裝oracle資料庫,由於一邊安裝一邊給旁邊的兩個同事作簡單的解釋,所以到了在中午吃飯以前只是安裝完了軟體部分。ut的食堂有兩層,每個月的餐費都是直接打入員工卡中,所...
實習第三天
sharedpreferences是android平台上乙個輕量級的儲存類,簡單的說就是可以儲存一些我們需要的變數資訊 例如 程式聲音開關 大小,設定自動登入記住賬號對賬號 密碼的儲存,對預設事項的紀錄等。1 intent bundle的傳送方式 2 利用sharedpreferences acti...