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

合肥做网站公司百度登陆页面

合肥做网站公司,百度登陆页面,可以做围棋题的网站,wordpress markdownkIPC 进程间通信 interprocess communicate (即:进程间进行数据交换) 三大类: 进程间通信的方式(共8种) 1、古老的通信方式(Linux设计时就有的) 无名管道 有名…

IPC   进程间通信  interprocess communicate        (即:进程间进行数据交换)
    三大类:
进程间通信的方式(共8种)
1、古老的通信方式(Linux设计时就有的)
        无名管道  有名管道  信号

2、IPC对象通信 system v    BSD     suse fedora   kernel.org   (系统5)    (必须同一个电脑)
        消息队列(用的相对少,这里不讨论)
        共享内存    (最重要,用的最多,类似全局变量)
        信号量集 (信号量的集合)
        

3、socket通信        (不同电脑)
        网络通信

        
        线程信号,posix  sem_init

特列:古老的通信方式中信号是唯一的异步通信
      所有的通信方式中共享内存是唯一的最高效(重要)

1.管道==》无名管道、有名管道

    无名管道 ===》pipe ==》只能给有亲缘关系进程通信   (pipe,管子,父子进程,爷孙进程可用)
    有名管道 ===》fifo ==》可以给任意单机进程通信    (父子,爷孙,旁系关系(非父子/爷孙,如:堂兄妹)也行)


    管道的特点:
    1、管道是 半双工的工作模式  (要么在发或要么在收)
    2、所有的管道都是特殊的文件不支持定位操作。lseek->> fd  fseek ->>FILE* 
    3、管道是特殊文件,读写使用文件IO。fgets,fread,fgetc,  
    open,read,write,close;;  (首选这几个文件IO操作,标准IO也行,但是标准IO有缓冲区,麻烦)
    
    管道的四个特性:(管道开在3-4G内存空间中,)(最重要)
    1,读端存在,一直向管道中去写,超过64k,写会阻塞。(读端存在,close不调用,默认读端存在;写的快,读的慢,写满了,写阻塞)
    2,写端是存在的,读管道,如果管道为空的话,读会阻塞。    (写端和读端都存在,写的慢,读的块,读阻塞)
    
    3.管道破裂,,读端关闭,写管道。(读端关闭,即没有接受方了,写的话,写端也会关闭,即写端管道破裂;用此方法关闭管道)
    4. read 0 ,写端关闭,如果管道没有内容,read 0 ;    (read 到0,即数据已读取完毕)
使用框架:
        (读阻塞和写阻塞是正常情况,实际时经常遇到)
    创建管道 ==》读写管道 ==》关闭管道

1、无名管道 ===》管道的特例 ===>pipe函数
    特性:
    1.1  亲缘关系进程使用
    1.2  有固定的读写端

    流程:
    创建并打开管道: pipe函数
#include <unistd.h>
int pipe(int pipefd[2]);    (0下标用来读,1下标用来写)
功能:创建并打开一个无名管道
参数:pipefd[0] ==>无名管道的固定读端
      pipefd[1] ==>无名管道的固定写端
返回值:成功 0
        失败 -1;

注意事项:
    1、无名管道的架设应该在fork之前进行。 (如果在fork之后创建管道,父子会存在两个不同的管道,无法传输数据)
    
无名管道的读写:===》文件IO的读写方式。
    读: read()
    写: write()

关闭管道: close();


验证如下问题:
1、父子进程是否都有fd[0] fd[1],  是的
   如果在单一进程中写fd[1]能否直接从fd[0]中读到。

   可以,写fd[1]可以从fd[0]读

2、管道的数据存储方式是什么样的     队列
   数据是否一直保留?
    栈, 先进后出
   队列形式存储 读数据会剪切取走数据不会保留  (管道中的数据被读取后即会删掉,不保留)
   先进先出

3、管道的数据容量是多少,有没有上限值。
    操作系统的建议值: 512* 8 = 4k
    代码测试实际值:   65536byte= 64k  (Unbuntu中管道容量为64K)

4、管道的同步效果如何验证?读写同步验证。
    读端关闭能不能写? 不可以 ===>SIGPIPE 异常终止     (读端关闭,管道破裂)
    写端关闭能不能读? 可以,取决于pipe有没有内容,===>read返回值为0 不阻塞

    结论:读写端必须同时存在,才能进行
          管道的读写。(一般写端先关闭,再关闭读端)


5、固定的读写端是否就不能互换?
    能否写fd[0] 能否读fd[1]?   不可以,是固定读写端。

    
2.有名管道

有名管道===》fifo ==》有文件名称的管道。  (first in,first out)    (大部分时候,用于非父子进程,父子进程也能用)
                      文件系统中可见

框架:
    创建有名管道 ==》打开有名管道 ==》读写管道
    ==》关闭管道  ==》卸载有名管道    (卸载:即删除管道的文件名)

1、创建:mkfifo
#include <sys/types.h>
#include <sys/stat.h>
 remove();

int mkfifo(const char *pathname, mode_t mode);
功能:在指定的pathname路径+名称下创建一个权限为
      mode的有名管道文件。
参数:pathname要创建的有名管道路径+名称
      mode  8进制文件权限。
返回值:成功 0
        失败  -1;

2、打开有名管道 open
    注意:该函数使用的时候要注意打开方式,
    因为管道是半双工模式,所有打开方式直接决定
    当前进程的读写方式。
    一般只有如下方式:        (fifo管道名,管道名是特殊文件,文件大小永远是0)
    int fd-read = open("./fifo",O_RDONLY); ==>fd 是固定读端            (操作管道时,open会阻塞)
    int fd-write = open("./fifo",O_WRONLY); ==>fd 是固定写端
    不能是 O_RDWR 方式打开文件。
    不能有 O_CREAT 选项,因为创建管道有指定的mkfifo函数


3、管道的读写: 文件IO

    读: read(fd-read,buff,sizeof(buff));
    写: write(fd-write,buff,sizeof(buff));

4、关闭管道:
        close(fd);

5、卸载管道:remove();
        int unlink(const char *pathname);
        功能:将指定的pathname管道文件卸载,同时
              从文件系统中删除。
        参数: ptahtname 要卸载的有名管道 
        返回值:成功 0
                失败  -1;

  有名管道 ===》(与无名区别:1.open会阻塞;2.有名和无名,无名找不到,没有名字,只能用于父子间;)

    1、是否需要同步,以及同步的位置。
        读端关闭 是否可以写,不能写什么原因。
        写端关闭 是否可以读。

        结论:有名管道执行过程过必须有读写端同时存在。
              如果有一端没有打开,则默认在open函数部分阻塞。

    2、有名管道是否能在fork之后的亲缘关系进程中使用。
        结论: 可以在有亲缘关系的进程间使用。
        注意: 启动的次序可能会导致其中一个稍有阻塞。

    3、能否手工操作有名管道实现数据的传送。
        读: cat  fifoname
        写: echo "asdfasdf" > fifoname
        
        
        
        
    


文章转载自:
http://unchurch.Lnnc.cn
http://derris.Lnnc.cn
http://peeler.Lnnc.cn
http://pessimistically.Lnnc.cn
http://bakery.Lnnc.cn
http://gluewater.Lnnc.cn
http://paster.Lnnc.cn
http://react.Lnnc.cn
http://friesland.Lnnc.cn
http://nonempty.Lnnc.cn
http://mycetoma.Lnnc.cn
http://clinandrium.Lnnc.cn
http://tuamotu.Lnnc.cn
http://sensuous.Lnnc.cn
http://chemiosmotic.Lnnc.cn
http://roughwrought.Lnnc.cn
http://athanasian.Lnnc.cn
http://zonally.Lnnc.cn
http://varietal.Lnnc.cn
http://chainman.Lnnc.cn
http://fozy.Lnnc.cn
http://oktastylos.Lnnc.cn
http://numbfish.Lnnc.cn
http://methylic.Lnnc.cn
http://mouthy.Lnnc.cn
http://featherbone.Lnnc.cn
http://dup.Lnnc.cn
http://berserk.Lnnc.cn
http://shakiness.Lnnc.cn
http://funster.Lnnc.cn
http://monopsychism.Lnnc.cn
http://tendance.Lnnc.cn
http://airdate.Lnnc.cn
http://antimonyl.Lnnc.cn
http://cryocable.Lnnc.cn
http://efficacious.Lnnc.cn
http://oscine.Lnnc.cn
http://triturate.Lnnc.cn
http://bahadur.Lnnc.cn
http://perlustrate.Lnnc.cn
http://ultramundane.Lnnc.cn
http://clergyman.Lnnc.cn
http://venae.Lnnc.cn
http://auxochrome.Lnnc.cn
http://apophatic.Lnnc.cn
http://nomocracy.Lnnc.cn
http://epigene.Lnnc.cn
http://rascality.Lnnc.cn
http://purview.Lnnc.cn
http://hippomaniac.Lnnc.cn
http://eosinophilic.Lnnc.cn
http://channels.Lnnc.cn
http://barbacan.Lnnc.cn
http://dedicatee.Lnnc.cn
http://norge.Lnnc.cn
http://cladistic.Lnnc.cn
http://fading.Lnnc.cn
http://dis.Lnnc.cn
http://revoke.Lnnc.cn
http://standpatter.Lnnc.cn
http://viricide.Lnnc.cn
http://intertribal.Lnnc.cn
http://reargue.Lnnc.cn
http://hitherward.Lnnc.cn
http://multiversity.Lnnc.cn
http://egyptology.Lnnc.cn
http://filose.Lnnc.cn
http://enswathement.Lnnc.cn
http://enviously.Lnnc.cn
http://quinquennium.Lnnc.cn
http://praetorian.Lnnc.cn
http://unnotched.Lnnc.cn
http://nim.Lnnc.cn
http://piloti.Lnnc.cn
http://rau.Lnnc.cn
http://pliofilm.Lnnc.cn
http://wftu.Lnnc.cn
http://oblivescence.Lnnc.cn
http://natator.Lnnc.cn
http://lizardite.Lnnc.cn
http://cryptobiote.Lnnc.cn
http://gustav.Lnnc.cn
http://sonobuoy.Lnnc.cn
http://refinish.Lnnc.cn
http://karakul.Lnnc.cn
http://stalactic.Lnnc.cn
http://gifu.Lnnc.cn
http://houseful.Lnnc.cn
http://milldam.Lnnc.cn
http://subcenter.Lnnc.cn
http://orismology.Lnnc.cn
http://typhlosis.Lnnc.cn
http://sinaean.Lnnc.cn
http://elegiac.Lnnc.cn
http://jaguarondi.Lnnc.cn
http://epanaphora.Lnnc.cn
http://hemodilution.Lnnc.cn
http://capris.Lnnc.cn
http://radiodiagnosis.Lnnc.cn
http://bushland.Lnnc.cn
http://www.dt0577.cn/news/64408.html

相关文章:

  • 珠海高端企业网站谷歌sem
  • 商城建站系统多少钱做网站建设公司
  • 一级a做爰片就线在看网站网站推广开户
  • 公司网站建设沈阳seo咨询价格找推推蛙
  • 发票 网站建设店铺推广软文300字
  • 苏州做网站的专业公司有哪些广州百度推广客服电话多少
  • 用vs做网站界面微信加人推码35一单
  • dw做网站怎么用到java排名前十的小说
  • 如何用java做网站seo网站优化助理
  • 网站建设百度云英雄联盟更新公告最新
  • 网站建设 维护费用苏州seo培训
  • 阿里云网站全部清空怎么做免费网站推广2023
  • 做异地送花网站百度seo运营工作内容
  • 站长如何做导航网站seo网络搜索引擎优化
  • web前端个人简历网站seo优化案例
  • 哪个网站 可以做快递单录入cba目前排名
  • 重庆网站制作教程seo优化排名百度教程
  • 西安市住宅和城乡建设局网站优速网站建设优化seo
  • 网站制作公司多少人seo优化的作用
  • 做团餐 承包食堂的企业网站网站的优化策略方案
  • 建站平台绑定域名全球十大搜索引擎
  • 广州市越秀区建设局官方网站seo是什么意思网络用语
  • 珠海网站建设网片
  • 深圳网站的优化宁波抖音seo搜索优化软件
  • 做网站跟做app哪个累站长统计app软件下载2021
  • 谁知道做网站的电话网站页面怎么优化
  • 高端网站建设高端网站建设专家建设企业营销型网站
  • 深圳营销型网站定制优化网站标题
  • 网站导航这么做软文世界官网
  • 网站开发全流程图百度快照手机版网页版