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

我的世界做封面网站百度一下搜索

我的世界做封面网站,百度一下搜索,网站优化的常见问题,做网站的骗局进程间通讯的目的 数据传输:一个进程需要把它的数据发送给另一个数据资源共享:多个进程需要共享同样的资源通知事件:一个进程需要向另一个或者一组进程发送消息,通知它发生了某种事件(如进程终止时要通知父进程&#…

进程间通讯的目的

  • 数据传输:一个进程需要把它的数据发送给另一个数据
  • 资源共享:多个进程需要共享同样的资源
  • 通知事件:一个进程需要向另一个或者一组进程发送消息,通知它发生了某种事件(如进程终止时要通知父进程)
  • 进程控制:有些进程希望控制另一个进程的执行,此时控制进程希望可以拦截另一个进程所有陷入和异常,并能及时知道它的状态改变

简而言之,就是需要多个进程协同共同完成一些事情 

进程通讯的方式

  • 匿名管道,命名管道
  • System V IPC 消息队列,共享内存,信号量
  • POSIX IPC 消息队列,共享内存,信号量,互斥量,条件变量,读写锁

匿名管道

pipe函数创建一无名管道

参数:fd文件描述符,其中fd[0]表示读端,fd[1]表示写端 

返回值:成功返回0,失败返回返回错误代码

pipe创建的是内存级的文件,匿名文件(管道),匿名管道只能进行血缘关系进程通讯。

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>int main()
{int fds[2];int n = pipe(fds);char buffer[1024];if(n<0)//返回值小于0,创建失败{perror("pipe error!\n");exit(1);}//fork创建子进程,可以继承父进程的PCBpid_t pid = fork();if(pid==0)//子进程{close(fds[1]);//关闭写端while(1){size_t size = read(fds[0],buffer,sizeof(buffer)-1);if(size<=0){printf("子进程读取退出\n");exit(1);}buffer[size] = 0;printf("子进程读取到:%s",buffer);memset(buffer,0,sizeof(buffer));}}//父进程关闭读端close(fds[0]);while(fgets(buffer,sizeof(buffer),stdin)){size_t len = strlen(buffer);if(len<=0){continue;}size_t size = write(fds[1],buffer,len);if(size!=len){perror("write error, exit!\n");exit(2);}else{printf("父进程写端写入:%s",buffer);}memset(buffer,0,sizeof(buffer));}return 0;
}

匿名管道的4种情况

  1. 管道内部没有数据,写端不关闭自己的写端文件符fd,读端就要阻塞等待
  2. 管道内部被写满,读端不关闭自己的读端文件符fd,写端就要阻塞等待
  3. 对于写端而言,关闭写端文件符wfd,读端就会把pipe中数据读完,最后就会读到返回值为0,表示读结束,类似读到了文件结尾
  4. 对于读端而言,关闭读端文件符rfd,写端再写,操作系统就会给写端进程发送信号SIGPIPE,写端进程收到信号,默认动作中止进程。(linux信号详解)

4个注意点 

  1. 匿名管道只能用于父子进程通讯
  2. pipe是面向字节流的
  3. 父子进程退出,管道自动释放,文件的生命周期是随进程的
  4. 管道只能单向通讯 

其实匿名管道在内核中是下面这样: 

http://www.hkea.cn/news/108971/

相关文章:

  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法
  • php mysql的网站开发外贸推广平台
  • 济南网站建设认可搜点网络能百度指数有三个功能模块
  • 网上商城网站建设意义在线代理浏览网页
  • 网站图片切换代码百度下载并安装最新版