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

可以做头像的网站十大网络科技公司

可以做头像的网站,十大网络科技公司,汽车网站建设代理加盟,自己做网站都需要什么Linux#xff1a;进程间通信-CSDN博客 我们说匿名管道只能用于父子进程这样的关系通信#xff0c;那么陌生进程怎么通信#xff1f; 我们之前说父子进程能通信的最关键的地方就在于子进程复制了一份父进程的files_struct#xff0c;从而通过文件的inode映射同一份文件来通…Linux进程间通信-CSDN博客 我们说匿名管道只能用于父子进程这样的关系通信那么陌生进程怎么通信 我们之前说父子进程能通信的最关键的地方就在于子进程复制了一份父进程的files_struct从而通过文件的inode映射同一份文件来通信而陌生的进程他们怎么看见同一份文件 通过文件内核缓冲区 什么叫文件内核缓冲区 来先看看一个朴素的通信 一个进程把数据写到磁盘上的一个文件另一个进程从磁盘中读取来完成通信 但是每次我们都要把文件从磁盘加载出来很慢所以我们理想的情况是这个中间文件如果放到内存里而不是磁盘然后两个需要通信的进程一个从里面读另一个从里面写最后不用把数据刷新到磁盘里因为是临时数据无意义这样就可以最大效益化的通信了 那么这两个文件怎么找到这个中间文件 通过路径文件名的方案 所以这个文件就要具备两个特点 1.当该文件被打开时不会被刷新在磁盘上而是在内存中作为数据被临时保存 2.但是在磁盘层面上要有自己的文件名和路径方便进程锁定 符合这两个条件的文件就是命名管道 利用命名管道进行进程间通信 命名管道的创建mkfifo 第一个参数创建的文件名第二个参数创建的管道的权限管道也是一种文件 成功返回0失败返回-1 我们来写一下用命名管道来实现两个陌生进程的通信 大体逻辑是实现一个客户端和用户端的通信 comm.h: #includestdio.h #includestdlib.h #includestring.h #includeunistd.h #include sys/types.h #include sys/stat.h #include fcntl.h #define MY_FIFO ./fifo server #include comm.h int main(){umask(0);//防止设置权限时受umask影响//if(mkfifo(MY_FIFO,0666)0){//创建管道文件// perror(mkfifo);// return 1;//}//printf(start);int fdopen(MY_FIFO,O_RDONLY);//打开文件if(fd0){perror(open error);}//让我们的server提供读服务while(1){char buffer[1024]{0};ssize_t sread(fd,buffer,sizeof(buffer)-1);if(s0){buffer[s]0;printf(client say:);//读取结束printf(%s,buffer);//break;}else if(s0){printf(Client disconnected...\n);break;break;}else{perror(read error);//处理error}}close(fd); } client.c: #includecomm.h//client和server都包含fifo文件上图可以通信 int main(){//printf(start);int fdopen(MY_FIFO,O_WRONLY);if (fd0){perror(open error);return 1;}while(1){printf(请输入);fflush(stdout);//刷新缓冲区char buffer[64]{0};ssize_t sread(0,buffer,sizeof(buffer)-1);if(s0){buffer[s]0;printf(%s\n,buffer);write(fd,buffer,strlen(buffer));}}close(fd);return 1; } 实现结果 这两个进程我们要先执行./server/.exe来生成我们的命名管道文件fifo 再执行./client.exe用client端来操作server端 我们来验证一下命名管道到底会不会从磁盘加载内容 ./client.exe: ./server.exe: 会先卡在这里没有反应卡多久呢 因为是sleep10当然是10s了 所以如果你一次性输入很多内容到命名管道文件里但是server并没有读取一般来讲数据只能在管道文件里可是我们发现管道文件的大小是0。这说明命名管道的数据为了效率不会刷新到磁盘 等一会就会刷新 为什么之前的pipe叫匿名管道这样子通信叫命名管道 因为这个管道文件有名字啊有名字有路径大家是陌生的进程也可以看见同一份命名管道文件而匿名管道靠的是父子间进程的继承才实现的通信 好了就说到这里吧。。。放一张和兔兔的合照
http://www.hkea.cn/news/14482296/

相关文章:

  • 农业公司网站源码做网站有视频教吗
  • 营销型网站的目标是怎样在在农行网站上做风险评估
  • 内蒙网站建设赫伟创意星空科技苏州小程序开发哪家好
  • 做a手机视频在线观看网站网站源码中国有限公司
  • 做淘宝客网站好搭建吗?国内外免费域名解析网站
  • 网站建设备案和免备案的区别健康生活网站开发系统背景
  • 网站怎么做数据转移残联网站建设方案
  • 那位学生网站开发wordpress 爆破脚本
  • 怎么自己做彩票网站吗网站发稿平台
  • 自己做国外网站建网站平台哪家好
  • 为网站 做字幕wordpress标签关键词
  • 自适应 网站开发为什么很多中国人去菲律宾做网站
  • 手机网站制作流程图项目推广方式有哪些
  • 建设旅游网站的目的和意义wordpress搜索增强
  • 做金融必看网站建设工程安全信息网
  • 怎样健网站旅游网页代码模板
  • php网站开发前端新乡网站建设服务哪家好
  • 湖南太平洋建设集团网站专业网站开发制作
  • 商城网站建设解决方案创建购物平台需要什么
  • 最好的模板网站全球十大软件公司排名
  • 做一个小说网站需要多少钱展示型网站多少钱
  • 怎样自己做网站卖钱移动端网站怎么做优化
  • 明星个人网站设计交互式网站开发技术包括
  • 设计与绘制一个网站首页桂林北站离哪个景区近
  • 网站建设信息静态网站怎么做优化
  • 刚做网站和搜出来的不一样上海有什么大企业
  • 事业单位做网站需要前置审批吗郑州网站建设注意事项
  • 大型服装网站建设上海网站建设公司案例
  • 网站页面怎么做地图wordpress中文目录
  • 微网站制作超链接南通装修网站大全