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