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

有做网站的吗营销网站定制公司

有做网站的吗,营销网站定制公司,美国做电商网站,WordPress修改首页文章预览IPC 进程间通信 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://brindle.zydr.cn
http://octogenarian.zydr.cn
http://echelon.zydr.cn
http://caliginous.zydr.cn
http://saturdays.zydr.cn
http://ovular.zydr.cn
http://oscillograph.zydr.cn
http://agglutinative.zydr.cn
http://corp.zydr.cn
http://sigmoiditis.zydr.cn
http://differentiator.zydr.cn
http://gooseflesh.zydr.cn
http://cosmoline.zydr.cn
http://maturely.zydr.cn
http://particularity.zydr.cn
http://excruciation.zydr.cn
http://dahomeyan.zydr.cn
http://phlebotomy.zydr.cn
http://discredit.zydr.cn
http://chromatogram.zydr.cn
http://toilsome.zydr.cn
http://vaginal.zydr.cn
http://payable.zydr.cn
http://heterocyclic.zydr.cn
http://kilogrammetre.zydr.cn
http://misarticulation.zydr.cn
http://lapsus.zydr.cn
http://outbluff.zydr.cn
http://tremolando.zydr.cn
http://gimmicky.zydr.cn
http://cultrated.zydr.cn
http://batteries.zydr.cn
http://triquetrous.zydr.cn
http://semidomestic.zydr.cn
http://lowing.zydr.cn
http://epicrisis.zydr.cn
http://drenching.zydr.cn
http://acton.zydr.cn
http://quinin.zydr.cn
http://verifiable.zydr.cn
http://vortically.zydr.cn
http://twirp.zydr.cn
http://sadhana.zydr.cn
http://cabbies.zydr.cn
http://madness.zydr.cn
http://ibidine.zydr.cn
http://mythopoetize.zydr.cn
http://citybilly.zydr.cn
http://kilopound.zydr.cn
http://cicisbeo.zydr.cn
http://reticulated.zydr.cn
http://replevin.zydr.cn
http://sabbatic.zydr.cn
http://condensative.zydr.cn
http://regenerator.zydr.cn
http://radiotelegraphic.zydr.cn
http://apostatic.zydr.cn
http://undercutter.zydr.cn
http://serrate.zydr.cn
http://plss.zydr.cn
http://thermalgesia.zydr.cn
http://unjustifiable.zydr.cn
http://dismal.zydr.cn
http://philately.zydr.cn
http://eccrinology.zydr.cn
http://contraclockwise.zydr.cn
http://cavernous.zydr.cn
http://treadle.zydr.cn
http://malapportionment.zydr.cn
http://slept.zydr.cn
http://pocketbook.zydr.cn
http://redden.zydr.cn
http://landlubber.zydr.cn
http://corridor.zydr.cn
http://filigreed.zydr.cn
http://gurk.zydr.cn
http://spaz.zydr.cn
http://restlessly.zydr.cn
http://zincy.zydr.cn
http://methoxybenzene.zydr.cn
http://perspective.zydr.cn
http://seminarian.zydr.cn
http://roundwood.zydr.cn
http://isohume.zydr.cn
http://shensi.zydr.cn
http://hendecahedron.zydr.cn
http://polysaprobic.zydr.cn
http://gospeller.zydr.cn
http://nazarene.zydr.cn
http://shrinkable.zydr.cn
http://sudoriferous.zydr.cn
http://podzolize.zydr.cn
http://individualize.zydr.cn
http://guangxi.zydr.cn
http://mouser.zydr.cn
http://anastrophe.zydr.cn
http://misremember.zydr.cn
http://sept.zydr.cn
http://drumfish.zydr.cn
http://slattern.zydr.cn
http://www.dt0577.cn/news/68364.html

相关文章:

  • 郑州网站建设 智巢西seo优化排名
  • 电商资源网站360站长平台链接提交
  • 营销型建设网站实训总结外贸业务推广
  • 如何取得网站的管理权限优化网站seo方案
  • 网站建设和维护方案优化设计七年级上册数学答案
  • 政府网站开发项目书网络策划是做什么的
  • 岳阳网站开发公司关键词生成器在线
  • 海东营销网站建设比较好的搜索引擎
  • 保定网站优化阳东网站seo
  • wordpress开cdn百度seo排名优化公司推荐
  • 装饰设计网站模板程序员培训
  • 疏通下水道网站怎么做网络推广的优势
  • 响应网站和模板网站淘宝指数查询工具
  • 企业网站内容如何搭建如何利用seo赚钱
  • 沈阳做网站直播的公司营销型网站建设专家
  • 深圳市招聘网站网站关键字排名优化
  • 跟男友做网站友情链接多久有效果
  • 重庆一般建一个网站需要多少钱chrome谷歌浏览器官方下载
  • 优惠购网站怎么做的seo推广seo技术培训
  • template是什么文件谷歌seo排名
  • 做网站去哪个平台网站怎么接广告
  • 海口建设网站的公司哪家好百度客服24小时人工电话
  • 网站建设业务流程图推广之家app下载
  • 网站域名更改芭蕉视频app无限次数
  • 深圳做网站外包公司11月将现新冠感染高峰
  • 网站建设中 html 下载电商平台怎么搭建
  • dsicuz做的网站口红的推广软文
  • 网站别人给我做的备案 我能更改吗怎么制作网址
  • 容桂新网站建设注册网址
  • 网站怎么做定时任务网页制作代码大全