#include#include#include#include#define msg_text 512
// 訊息結構體
struct my_msg_st
;int main(int argc, char* ar**)
while (idx < 5)
idx++;
}return 0;
}
#include#include#include#include#define msg_text 512
/** * 訊息佇列不會阻塞往程序往訊息佇列中寫入訊息的
* 即時另外乙個程序沒有從訊息佇列中接收訊息,
* 比如,訊息佇列寫入程序寫完所有的訊息之後,才開始
* 開啟訊息佇列接收程序,依然會收到所有傳送的訊息。
* */
struct my_msg_st ;
int main(int argc, char* ar**)
while (idx<5)
// 列印訊息
printf("msg type:%ld\n", data.my_msg_type);
printf("msg content:%s\n", data.anytext);
idx++;
} // 刪除訊息佇列
// msgctl 函式功能是對指定訊息佇列進行控制
// ipc_rmid 該取值表示從核心中刪除指定命令 是乙個command
// 配合 msqid 表示從核心中刪除訊息佇列
if (msgctl(msqid, ipc_rmid, 0)==-1)
return 0;
}
輸出如下:
zfz:demo zhangfengzhou$ ./msgsend
enter some text:hello world
enter some text:hello world
enter some text:hello world
enter some text:hello world
zfz:demo zhangfengzhou$ ./msgrcv
msg type:2
msg content:hello world
msg type:2
msg content:hello world
msg type:3
msg content:hello world
msg type:3
msg content:hello world
abort trap: 6
linux系統程式設計 程序間通訊 pipe
程序間通訊 pipe 每個程序各自有不同的使用者位址空間,任何乙個程序的全域性變數在另乙個程序中都看不到,所以程序之間要交換資料必須通過核心,在核心中開闢一塊緩衝區,程序1把資料從使用者空間拷到核心緩衝區,程序2再從核心緩衝區把資料讀走,核心提供的這種機制稱為程序間通訊 ipc,interproce...
Linux系統程式設計 程序間通訊 IPC
利用檔案進行程序間通訊的程式示例 include include include include include include intmain if pid 0 write fd1,str,strlen str printf child wrote over n if pid 0 sleep 1 ...
Linux系統程式設計 程序間通訊(一)
linux系統主要的程序間通訊機制如下 無名管道 pipe 及命名管道 named pipe 無名管道可用於具有父子關係程序間的通訊 命名管道用於無父子關係的程序之間的通訊。無父子關係的程序可將資訊傳送到某個命名管道中,通過管道名讀取資訊 訊號 signal 程序間的高階通訊方式,用於通知其他程序有...