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

陕西宝鸡网站建设短期职业技能培训班

陕西宝鸡网站建设,短期职业技能培训班,wordpress 悬浮广告,网站建设的基本步骤是1. 什么是FIFO FIFO命名管道,也叫有名管道,来区分管道pipe。管道pipe只能用于有血缘关系的进程间通信,但通过FIFO可以实现不相关的进程之间交换数据。FIFO是Linux基础文件类型中的一种,但是FIFO文件在磁盘上没有数据块&#xff0c…

1. 什么是FIFO
FIFO命名管道,也叫有名管道,来区分管道pipe。管道pipe只能用于有血缘关系的进程间通信,但通过FIFO可以实现不相关的进程之间交换数据。FIFO是Linux基础文件类型中的一种,但是FIFO文件在磁盘上没有数据块,仅仅用来标识内核中的一条通道。各进程可以打开这个文件进行read/write操作,实际上是在读写内核通道,这样就实现了进程间通信。

创建FIFO的方式:

使用命令创建:mkfifo 管道名,可以理解为创建一个管道伪文件。
使用库函数创建:mkfifo()函数,并且一旦使用mkfifo()创建了一个FIFO,就可以使用open来打开它,常见的文件I/O函数都可用于FIFO。如:close、read、write、unlink等。
实际上,创建一个FIFO命名管道的时候,内核会为FIFO(伪)文件开辟一个缓冲区,操作FIFO文件就相当于操作这个缓冲区,以此来实现进程间的通信,这种通信实际上就是文件读写的操作来实现的。(可以把FIFO理解为一个文件,一个进程向该文件写数据,另一个进程从该文件中读书数据,前提是两个进程读写的是同一个FIFO文件才能实现通信)

2.当open一个FIFO时,是否设置非阻塞标志(O_NONBLOCK)的区别:

        若没有执行O_NONBLOCK(默认),只读open要阻塞到某个其他进程为写而打开此FIFO。类似的,只写open要阻塞到其他进程为读而打开它。

        若指定了O_NONBLOCK,则只读open立即返回。而只写open将出错返回-1,如果没有进程已经为读而打开该FIFO,其errno置ENXIO。
 

3.代码:

创建两个进程,一个进程向FIFO数据,一个进程从FIFO数据。

write:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>//       int mkfifo(const char *pathname, mode_t mode);
//   ssize_t write(int fd, const void *buf, size_t count);int main()
{int cnt = 0;char *str = "message from fifo";int fd = open("./ipc-file",O_WRONLY);printf("write open success\n");while(1){write(fd,str,strlen(str));sleep(2);cnt++;if(cnt == 5){break;}}close(fd);return 0;}

read:

#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>//       int mkfifo(const char *pathname, mode_t mode);int main()
{int cnt = 0;char buf[30]={0};	if(mkfifo("./ipc-file",0700)==-1 && errno != EEXIST){printf("mkfifo fail");perror("why");}	int fd = open("./ipc-file",O_RDONLY);printf("open success\n");while(1){int nread = read(fd,buf,30);printf("read %d byte from fifo/n,context :%s\n",nread,buf);cnt++;if(cnt == 3){break;}}close(fd);return 0;}

结果:

http://www.yidumall.com/news/44366.html

相关文章:

  • 网站基础服务客户关系管理
  • 昆明做网站外包网络宣传方式有哪些
  • 济南做网站互联网公司排名如何做好推广引流
  • 做货品批发的网站都有哪些如何制作网站二维码
  • 做网站的工具 论坛浙江seo推广
  • 移动互联网网站开发技术推广普通话文字素材
  • 陕西手机网站建设seo值是什么意思
  • 网站开发视频资源放哪儿郑州网站建设专业乐云seo
  • 外贸建站效果广东疫情最新通报
  • 视频插入网站自学seo能找到工作吗
  • 怎么在百度知道做公司网站汕头网站建设公司哪个好
  • 中国建设银行官网站纪念币seo学习
  • 做网站用虚拟服务器可以吗宁波网站推广找哪家公司
  • 网站上循环滚动的友情链接怎么做深圳网站营销seo费用
  • wordpress物联网插件百度禁止seo推广
  • 衢州酷网站制作baud百度一下
  • dw网页制作源代码seo是一种利用搜索引擎的
  • 松江品划做网站公司百度登录页
  • 自己做h5网站百度互联网营销顾问
  • 雄安网站建设多少钱seo优化百度技术排名教程
  • 网站内容管理系统cms广州公司关键词网络推广
  • 湖北商城网站建设多少钱seo是指什么岗位
  • 广州一流高校建设网站网络营销的工具和方法有哪些
  • WordPress多语言多站点优化网站做什么的
  • 无备案网站加速平台推广是什么工作
  • 做网站制作的摘要网站页面分析作业
  • 赣州网站制作抖音seo搜索引擎优化
  • 做网站费用会计科目全网投放广告的渠道有哪些
  • 天津做网站贵吗网络营销软文范例300字
  • 色彩搭配 网站最佳搜索引擎