プロセス間通信:メッセージキュー通信方式

1236 ワード

LabVIEWを勉強しているうちに、深く入り込んでいるうちに、キューを勉強しました.当時本の作者はこのグラフィックプログラミングの言語でC/C++と比較していたが、C/C++にキューがあると言っていたので、私は茫然とした顔をしていた.例を挙げるのはみんな知っていますが、これは確かに聞いたことがありません.どうやって比較しますか.
でも今日は勉强しましたが、これからLabVIEWを勉强するかどうか、私はこのメッセージキューを勉强しました.実はLabVIEWはARMでは使えないし、ワークコントロールのようなヌード機では使えないので、特徴を発揮していません.
記録されているものは多くありません.一例です.
#include <sys/types.h>
#include <sys/msg.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

struct msg_buf
{
	int mtype;
	char data[255];
	
};

int main()
{
	key_t key;
	int msgid;
	int ret;
	struct msg_buf msgbuf;
	
	key = ftok("/tmp/2", 'a');
	printf("key = [%x]
", key); msgid = msgget(key, IPC_CREAT|0666); if(msgid == -1) { printf("create error
"); return -1; } msgbuf.mtype = getpid(); strcpy(msgbuf.data, "test haha"); ret = msgsnd(msgid, &msgbuf, sizeof(msgbuf.data), IPC_NOWAIT); if(ret == -1) { printf("send message err
"); return -1; } printf("recv_msg = [%s]
", msgbuf.data); return 1; }

実行結果:
[root@localhost Desktop]# ./a.out 
key = [ffffffff]
recv_msg = [test haha]
[root@localhost Desktop]#