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

有没有做网站的软件专业的网站建设公司

有没有做网站的软件,专业的网站建设公司,湖北省住房城乡建设厅网站查,北京网站开发企业目录 1、使用消息队列完成两个进程之间相互通信 2、共享内存实现两个进程之间的通信 3、思维导图 1、使用消息队列完成两个进程之间相互通信 //msgsnd.c #include <myhead.h>// 要发送的消息类型 struct msgbuf {long mtype;char mtext[1024]; };// 定义一个宏&#…

目录

1、使用消息队列完成两个进程之间相互通信

2、共享内存实现两个进程之间的通信

3、思维导图


1、使用消息队列完成两个进程之间相互通信

//msgsnd.c
#include <myhead.h>// 要发送的消息类型
struct msgbuf
{long mtype;char mtext[1024];
};// 定义一个宏,为后面需要传入数据的大小
#define SIZE sizeof(struct msgbuf) - sizeof(long)int main(int argc, char const *argv[])
{// 1.创建出一个key值,用于产生消息队列key_t key = ftok("/", 'k');if (key == -1){perror("ftok error");return -1;}// 2.通过生成的key创建出一个消息队列对象int msqid = msgget(key, IPC_CREAT | 0664);if (msqid == -1){perror("msqid error");return -1;}// 向消息队列中存放消息struct msgbuf buf;// 创建父子进程int pid = fork();if (pid < 0){perror("fork error");return -1;}else if (pid == 0){// 子进程,用于读取消息队列中类型为2的数据while (1){// 读取消息队列中类型为1的数据msgrcv(msqid, &buf, SIZE, 2, 0);if (strcmp(buf.mtext, "quit") == 0){break;}// 直接输出到终端,读到了什么内容printf("\n接收到的数据为:%s\n", buf.mtext);}}// 父进程// 向消息队列中存放类型为1数据while (1){// 发送消息为1的数据buf.mtype = 1;printf("请输入消息内容>>>");fgets(buf.mtext, SIZE, stdin);buf.mtext[strlen(buf.mtext) - 1] = 0; // 将回车变成'\0'// 将数据以阻塞的形式发送到消息队列中msgsnd(msqid, &buf, SIZE, 0);printf("发送成功\n");}wait(NULL);return 0;
}
//msgrecv.c
#include <myhead.h>// 要接收的消息类型
struct msgbuf
{long mtype;char mtext[1024];
};// 定义一个宏,为后面需要传入数据的大小
#define SIZE sizeof(struct msgbuf) - sizeof(long)int main(int argc, char const *argv[])
{// 1.创建出一个key值,用于打开消息队列key_t key = ftok("/", 'k');if (key == -1){perror("ftok error");return -1;}// 2.打开消息队列对象int msqid = msgget(key, IPC_CREAT | 0664);if (msqid == -1){perror("msqid error");return -1;}// 向消息队列中存放消息struct msgbuf buf;// 创建父子进程int pid = fork();if (pid < 0){perror("fork error");return -1;}else if (pid == 0){// 子进程,用于读取消息队列中类型为1的数据while (1){// 读取消息队列中类型为1的数据msgrcv(msqid, &buf, SIZE, 1, 0);if (strcmp(buf.mtext, "quit") == 0){break;}// 直接输出到终端,读到了什么内容printf("\n接收到的数据为:%s\n", buf.mtext);}// 删除消息队列if (msgctl(msqid, IPC_RMID, NULL) == -1){perror("msgctl error");return -1;}exit(EXIT_SUCCESS);}// 父进程// 向消息队列中存放类型为2数据while (1){// 向消息队列中存放类型为2的数据buf.mtype = 2;printf("请输入消息内容>>>");fgets(buf.mtext, SIZE, stdin);buf.mtext[strlen(buf.mtext) - 1] = 0; // 将回车变成'\0'// 将数据以阻塞的形式发送到消息队列中msgsnd(msqid, &buf, SIZE, 0);printf("发送成功\n");}wait(NULL);return 0;
}

 输出结果如下:实现两个进程之间的通信

2、共享内存实现两个进程之间的通信

//shmsnd.c
#include<myhead.h>
#include<sys/user.h>
int main(int argc, char const *argv[])
{//创建key值用于创建共享内存段key_t key = ftok("/",'t');if(key == -1){perror("ftok error");return -1;}printf("key = %d\n",key);//2、创建一个共享内存的对象int shmid = shmget(key,PAGE_SIZE,IPC_CREAT|0664);if(shmid == -1){perror("shmget error");return -1;}printf("shmid = %d\n",shmid);//3、将共享内存段映射到程序中来char *addr = (char *)shmat(shmid,NULL,0);//参数1:共享内存id号//参数2:系统自动映射对齐页//参数3:对共享内存的操作权限为读写权限printf("addr = %p\n",addr); //输出映射的地址//读出共享内存中的数据printf("消息为:%s",addr);sleep(5);if(shmdt(addr) == -1){perror("shmdt error");return -1;}//删除共享内存if(shmctl(shmid, IPC_RMID, NULL) == -1){perror("shmctl error");return -1;}while(1);return 0;
}
//shmrecv.c
#include<myhead.h>
#include<sys/user.h>
int main(int argc, char const *argv[])
{//创建key值用于创建共享内存段key_t key = ftok("/",'t');if(key == -1){perror("ftok error");return -1;}printf("key = %d\n",key);//2、创建一个共享内存的对象int shmid = shmget(key,PAGE_SIZE,IPC_CREAT|0664);if(shmid == -1){perror("shmget error");return -1;}printf("shmid = %d\n",shmid);//3、将共享内存段映射到程序中来char *addr = (char *)shmat(shmid,NULL,0);//参数1:共享内存id号//参数2:系统自动映射对齐页//参数3:对共享内存的操作权限为读写权限printf("addr = %p\n",addr); //输出映射的地址//向共享内存中写入数据strcpy(addr,"hello a hua qing yuan jian\n");sleep(5);//取消映射关系if(shmdt(addr) == -1){perror("shmdt error");return -1;}while(1);return 0;
}

输出结果如下:

3、思维导图

http://www.hengruixuexiao.com/news/51462.html

相关文章:

  • 代做原创毕业设计网站东莞网站优化关键词排名
  • 手机模板网站开发站长统计app软件下载官网
  • 有哪些做网站的网站成都私人网站建设
  • 网站开发工程师ppt自助建站系统破解版
  • 简历模板网站有哪些互联网广告销售
  • 建外贸商城网站会计培训班需要学多长时间
  • 深圳网站建设费用多少钱湖人最新消息
  • 一个新手怎么做电商运营济南做seo的公司排名
  • 网站建设项目标书app软件开发
  • 路由器做映射后 内网可以访问到我的网站 但是外网无法访问沪指重上3000点
  • 优秀包装设计网站互联网公司排名2021
  • 国内做网站上市公司廊坊网站建设优化
  • 建设工程网站新专家入库seo技巧
  • 做废品交易看什么什么网站企业营销策划
  • 服务器怎么添加网站会计培训班初级费用
  • 网站做网络营销的效果网络营销的方式包括
  • 湖南做网站 多少钱磐石网络电商seo是什么意思啊
  • 网站栏目页关键词如何做上海比较好的seo公司
  • asp.net 网站开发 教程2345浏览器主页网址
  • 资讯门户类网站模板59软文网
  • 政府网站建设方案核心内容百度外推代发排名
  • 滨海县做网站注册淘宝小程序在线培训网站
  • 昆明做网站建设找谁百度推广怎么做的
  • 网站出错咨询电话如何让百度收录自己的网站
  • 沈阳做网站哪个好sem是什么分析方法
  • 好的网站建设网站福州seo招聘
  • 免费做外贸的网站运营商大数据精准营销获客
  • 新建的网站如何做seo推广赚钱的平台有哪些
  • 广州住建官方网站百度经验官网登录
  • 长沙企业建站在线咨询seo文章代写一篇多少钱