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

app公司网站建设如何建一个公司的网站

app公司网站建设,如何建一个公司的网站,网站百度显示绿色官网字如何做的,网站建设规范布局文章目录消息队列有亲缘关系的进程使用消息队列通信无亲缘关系的进程使用消息队列通信使用环境#xff1a;Ubuntu18.04 使用工具#xff1a;VMWare workstations #xff0c;xshell作者在学习Linux的过程中对常用的命令进行记录#xff0c;通过思维导图的方式梳理知识点Ubuntu18.04 使用工具VMWare workstations xshell作者在学习Linux的过程中对常用的命令进行记录通过思维导图的方式梳理知识点并且通过xshell连接vmware中ubuntu虚拟机进行操作并将练习的截图注解每句话对应相应的命令读者可以无障碍跟练。第九次练习的重点在于Linux的进程如何使用 消息队列进行进程通信。消息队列 消息队列和FIFO详细都是一个队列结构都可以有多个进程向队列里面写消息多个进程从队列中读取消息。但是FIFO需要读写两端都事先代开才能够开始信息的传递。而消息队列可以实现向队列中写消息需要时再打开读取信息。但是消息队列先打开读仍然会阻塞因为此时没有消息可读。 //头文件 #include sys/types.h #include sys/ipc.h #include sys/msg.h函数int msgget(key_t key, int msgflg);创建和访问一个消息。成功返回唯一的消息队列标识符类似于进程id失败返回-1。 参数key是唯一表示一个消息队列的关键字如果用IPC_PRIVATE(值为0)就只能创建一个只有创建者才能访问的消息队列可用于父子间通信。非0的key可以通过fork函数获取表示创建一个可以被多个进程共享的消息队列实现非亲缘关系的通信。参数msgflg指明队列的访问权限和创建标志创建标志的可选值为IPC_CREAT和IPC_EXCL如果单独指定 IPC_CREAT,msgget 要么返回新创建的消息队列 id,要么返回具有相同 key 值的消息队列 id如果 IPC_EXCL 和 IPC_CREAT 同时指明则要么创建新的消息队列要么当队列存在时调用失败并返回-1。 函数int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 将消息添加到消息队列中 函数ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); 从消息队列中获取消息 参数msgid指明消息队列的ID通常是msgget函数成功的返回值。参数msgbuf是消息结构体他的长度必须要小于系统规定的上限必须以一个长整型成员变量开始接受函数将用这个成员变量来确定消息的累心。此结构体必须重写第一个参数不能修改其他自定义。 struct msgbuf {long mtype; /* type of message */char mtext[1]; /* message text */ };字段 mtype 是用户自己指定的消息类型必须是正整数该结构体第 2 个成员仅仅是一种说明性的结构实际上用户可以使用任何类型的数据就是消息内容。参数msgsz是消息体的大小每个消息体最大不超过4K。参数msgflg可以为0(通常为0)或者IPC_NOWAIT如果设置 IPC_NOWAIT,则msgsnd 和 msgrcv 都不会阻塞此时如果队列满并调用 msgsnd 或队列空时调用 msgrcv将返回错误。参数msgtyp类型有三种msgtyp0时接收队列中的第一个消息msgtyp0时接收队列中第一个类型等于msgtyp的消息msgtyp0时接受类型小于等于msgtyp绝对值的第1个最低类型消息。 函数int msgctl(int msqid, int cmd, struct msqid_ds *buf); 是消息队列的控制函数常用来删除消息队列。 参数msqid是msgget返回的消息队列标识符。参数cmd通常是IPC_RMID表示删除消息队列。参数buf通常是NULL。 有亲缘关系的进程使用消息队列通信 #include stdio.h #include string.h #include stdlib.h #include errno.h #include sys/types.h #include sys/ipc.h #include sys/msg.h #include sys/stat.h //自定义消息结构体 struct msgbuf {long mtype;char buf[64]; };int main() {int msgid msgget((key_t)1234,IPC_CREAT|0666);//创建一个消息队列if(msgid -1){ //创建失败的处理perror(msgget error);exit(-1);}struct msgbuf msg;memset(msg,0,sizeof(struct msgbuf));if(fork()0){ //父进程处理msg.mtype 1;strcpy(msg.buf,hello);msgsnd(msgid,msg,sizeof(msg.buf),0); //将消息放入消息队列wait(NULL); //等待子进程结束msgctl(msgid,IPC_RMID,NULL); //删除消息队列exit(0);}else{ //子进程处理sleep(2); //让父进程有时间将消息放入消息队列msgrcv(msgid,msg,sizeof(msg.buf),1,0); //从消息队列中取出消息puts(msg.buf); //打印取出的消息值exit(0);}return 0; }运行效果 无亲缘关系的进程使用消息队列通信 消息发送端源代码 #include stdio.h #include string.h #include stdlib.h #include errno.h #include sys/types.h #include sys/ipc.h #include sys/msg.h #include sys/stat.h #include unistd.h #define BUFFER 255 struct msgtype {long mtype;char buffer[BUFFER1]; };int main() {int msgid msgget((key_t)1234,0666|IPC_CREAT); //获取唯一id1234的消息队列if(msgid -1){perror(msgget);exit(1);}struct msgtype msg;memset(msg,0,sizeof(struct msgtype));msg.mtype 1; //设置消息类型为2strncpy(msg.buffer,hello,BUFFER);msgsnd(msgid,msg,sizeof(msg.buffer),0); //想msgid的消息队列发送消息memset(msg,0,sizeof(msg); //清空结构体msgrcv(msgid,msg,sizeof(msg.buffer),2,0); //从msgid的消息队列接收消息printf(接收到的消息内容是:%s\n,msg.buffer);return 0; }消息接收端源代码 #include stdio.h #include string.h #include stdlib.h #include errno.h #include unistd.h #include sys/types.h #include sys/ipc.h #include sys/stat.h #include sys/msg.h #include sys/wait.h #define BUFFER 255struct msgtype {long mtype;char buffer[BUFFER1]; };int main() {int msgid msgget((key_t)1234,0666|IPC_CREAT); //获取唯一id1234的消息队列if(msgid -1){perror(msgget);exit(1);}struct msgtype msg;memset(msg,0,sizeof(struct msgtype));while(1){msgrcv(msgid,msg,sizeof(msg.buffer),1,0); //从msgid的消息队列接收消息类型为1printf(接收端端收到的消息:%s\n,msg.buffer);msg.mtype 2; //设置消息类型为2strncpy(msg.buffer,world,BUFFER);msgsnd(msgid,msg, sizeof(msg.buffer),0); //向msgid的消息队列发送消息if(sizeof(msg.buffer)!0){break;}}return 0; }两个窗口运行结果
http://www.hkea.cn/news/14323610/

相关文章:

  • 网站经营内容grimhelm wordpress
  • 泉州网站建设制作网站百度地图
  • 东莞企业网站建设报价设计微信小程序
  • 软件工程课程网站开发设计模板素材网站
  • 商业网站推广骆驼网站建设
  • 门户网站建设工作聊城做网站推广
  • 漳州网站建设求职简历文山州建设局信息网站
  • hype做网站动效三门峡做网站
  • 网站的目录怎样做的大学生网站的设计风格
  • 网站服务器空间广州优秀网站设计
  • 建设网站浩森宇特开发流程管理
  • 上海网站建设兴策中视频自媒体注册
  • mip网站模板dw学生个人网页制作视频
  • 雅安工程交易建设网站安徽网站建设推荐 晨飞网络
  • 必应搜索引擎网站软件开发属于什么行业类别
  • 建立网站批复建设银行总行网站
  • 梵讯企业网站建设网站建设需要什么功能
  • 怎么制作一个网站首页php网站虚拟机价格
  • 腾讯云怎么做网站移动端应用开发
  • 做百度移动端网站外贸网址大全
  • 深圳建站定制公司开源的网站建设平台
  • 怎么把网站提交专门做网站的科技公司
  • iis 一个网站多个应用程序个人网页制作成品下载
  • 12306网站开发成本建设工程公司组织架构图
  • 大余网站做网站怎么报价
  • 男女明星直接做的视频网站西安网站制作网站
  • 麻涌企业网站建设软件发布网
  • 国家重大项目建设库网站打不开wordpress高级设置
  • 开发建设网站需要什么人才百度浏览器网址链接
  • 国内网站空间宁波建站价格