当前位置: 首页 > news >正文

可以在线做试卷的网站高端网站设计制

可以在线做试卷的网站,高端网站设计制,软件定制开发网,seo宣传网站在Linux中,线程间消息队列可以通过使用System V消息队列或POSIX消息队列来实现。 使用System V消息队列: System V消息队列是一种基于IPC(Inter-process Communication,进程间通信)的通信机制,可以用于进程…

在Linux中,线程间消息队列可以通过使用System V消息队列或POSIX消息队列来实现。

  1. 使用System V消息队列: System V消息队列是一种基于IPC(Inter-process Communication,进程间通信)的通信机制,可以用于进程或线程间的通信。下面是使用System V消息队列实现线程间通信的步骤:

a. 创建消息队列: 可以使用msgget()函数来创建一个新的消息队列。例如:

key_t key = ftok("path_to_key_file", 'A');
int msgid = msgget(key, IPC_CREAT | 0666);

b. 发送消息: 使用msgsnd()函数向消息队列发送消息。例如:

struct message {long mtype;char mtext[256];
};struct message msg;
msg.mtype = 1;
strcpy(msg.mtext, "Hello, world!");msgsnd(msgid, &msg, sizeof(msg.mtext), 0);

c. 接收消息: 使用msgrcv()函数从消息队列接收消息。例如:

struct message msg;
msgrcv(msgid, &msg, sizeof(msg.mtext), 1, 0);printf("Received message: %s\n", msg.mtext);

  1. 使用POSIX消息队列: POSIX消息队列是Linux中提供的另一种消息队列实现方式,它提供了更多的功能和灵活性。下面是使用POSIX消息队列实现线程间通信的步骤:

a. 创建消息队列: 可以使用mq_open()函数创建一个新的消息队列。例如:

mqd_t mq = mq_open("/my_queue", O_CREAT | O_RDWR, 0666, NULL);

b. 发送消息: 使用mq_send()函数向消息队列发送消息。例如:

char msg[] = "Hello, world!";
mq_send(mq, msg, sizeof(msg), 0);

c. 接收消息: 使用mq_receive()函数从消息队列接收消息。例如:

char buf[256];
mq_receive(mq, buf, sizeof(buf), NULL);printf("Received message: %s\n", buf);

需要注意的是,POSIX消息队列的名称在文件系统中是可见的,可以使用路径名来创建和打开消息队列。

整体实现:

发送到队列中去

#include <stdio.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>#define MSGSZ 512
struct  msg_buffer
{long   mtype;char   mtext[MSGSZ];int    age;double  many;
}msg_buf;int main(){key_t ftok_key=ftok("./msg1", 'b');//创建消息队列int msgget_id=msgget(ftok_key, IPC_CREAT|0666);//写入队列msg_buf.mtype=1;msg_buf.age=168;msg_buf.many=123.456;strcpy(msg_buf.mtext, "“我今天去超市,结果发现超市里没有超市");//key  指针类型的结构体  消息正文大小 发送标志 int msgend_stat=msgsnd(msgget_id, &msg_buf, sizeof(msg_buf)-sizeof(msg_buf.mtype), 0);msg_buf.mtype=8;strcpy(msg_buf.mtext, "我昨天梦见自己醒来了,结果今天真的醒来了");//key  指针类型的结构体  消息正文大小 发送标志 int msgend_stat1=msgsnd(msgget_id, &msg_buf, sizeof(msg_buf.mtext), 0);msg_buf.mtype=5;strcpy(msg_buf.mtext, "我试图在网上搜索‘如何上网’,结果电脑告诉我‘无法连接到互联网’");//key  指针类型的结构体  消息正文大小 发送标志 int msgend_stat2=msgsnd(msgget_id, &msg_buf, sizeof(msg_buf.mtext), 0);return 0;
}

接收

#include <stdio.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <unistd.h>
#include <stdlib.h>#define MSGSZ 512
struct  msg_buffer
{long   mtype;char   mtext[MSGSZ];int    age;double  many;
}msg_buf;int main() {// 创建唯一的keykey_t ftok_key = ftok("./msg1", 'b');// 访问消息队列int  msgid = msgget(ftok_key, 0666 | IPC_CREAT);if (msgid == -1) {perror("msgget error");exit(1);}// 接收消息//key 接收的大小   读取类型为msgtyp的第一条消息  0: 阻塞接收,直到有消息到达if (msgrcv(msgid, &msg_buf, sizeof(msg_buf.mtext), 8, 0) == -1) {perror("msgrcv error");exit(1);}printf("msg_buf received by child process: %s\n", msg_buf.mtext);sleep(1);if (msgrcv(msgid, &msg_buf, sizeof(msg_buf)-sizeof(msg_buf.mtype), 1, 0) == -1) {perror("msgrcv error");exit(1);}printf("msg_buf received by child process: %s  岁是%d 钱是:%.3fd\n", msg_buf.mtext, msg_buf.age, msg_buf.many);
sleep(1);if (msgrcv(msgid, &msg_buf, sizeof(msg_buf.mtext), 5, 0) == -1) {perror("msgrcv error");exit(1);}printf("msg_buf received by child process: %s\n", msg_buf.mtext);
sleep(1);// 删除消息队列if (msgctl(msgid, IPC_RMID, NULL) == -1) {perror("msgctl error");exit(1);}return 0;
}

http://www.yayakq.cn/news/94609/

相关文章:

  • 网站内容管理规范个人网站开发需求分析
  • 微商城网站策划基于wordpress开发教程
  • 深圳网站制作公司人才招聘怎么在网站中搜索关键字
  • 公司网站备案号保定网站建设方案优化
  • 网站维护收费标准域名访问网址
  • 品牌网站建设 优帮云房屋平面图设计软件app
  • 自己做的网站外国人能访问吗z云邮企业邮箱登录
  • 青岛网站设计怎么选北京有几家宽带网络公司
  • 做网站搜索结果的代码凉山州城乡规划建设局网站
  • 电子政务和网站建设自评怎么做招标公司网站
  • asp 通过ftp 网站搬家企业推广文案
  • 深圳做网站网络公司排名网站建设业务客户来源
  • 营销型网站用什么系统兰州互联网公司的排名
  • 企业网站建设中有哪几个重要点建筑公司网站领导致辞
  • 广州网站建设定制设计怎么在手机上做微电影网站
  • 网站建设的技术可行性分析高端建站什么意思
  • 网站方案设计网站维护中模版
  • 昆明网站外包html5响应式手机网站
  • 石家庄网站备案宁波网站建设相信荣胜网络
  • 卖东西专业网站网上it外包数据
  • 网站流量评价有哪几方面平面设计创意网站建设
  • 营销型网站建设公司易网拓wordpress 页面 表格
  • 新手学做网站pdf下载百度不收录哪些网站
  • 做算命网站江苏省建设厅网站是
  • 网站弹窗怎么做电商运营培训哪个机构好
  • 怎么做带网站连接的表格东莞外贸网站
  • 佛山网站seo推广推荐wordpress博客转出
  • 做app网站公司theme one wordpress
  • 忻州市住房城乡建设局网站网页图片无法另存为
  • 试述网站建设的步骤门户网网站建设功能需求表