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

网站建设外包 排名网站制网站制作公司

网站建设外包 排名,网站制网站制作公司,做网站自己有模板要花多少钱,怎么样开发一个app1. 什么是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.15wanjia.com/news/193582.html

相关文章:

  • 湖南企业网站营销设计如何做滴滴网站平台
  • 如果制作一个自己的网站制作ppt的网站
  • 佛山微网站开发哪家好wordpress 喜欢
  • 怎么自己做论坛网站网站建设发帖论坛社区
  • 桂林网站开发建设wordpress主题6
  • p2p网站建设方案书长沙网站制作哪里好
  • 网站建设年费wordpress项目部署
  • 企业网站开发需要多钱腾讯人安装wordpress
  • 做设计参考的网站网站开发培训收费
  • 现在ps做网站的尺寸太原网站建设质量推荐
  • vs2013如何做网站沧州搜索引擎优化
  • dedecms 建两个网站的问题推广工具
  • 网站建设工作的函网页微信版可以加入腾讯会议吗
  • 建立网站有什么要求seo积分优化
  • 网站设计与制作培训班淮北网络推广
  • 建设一个网站的费用企业文化经典句子
  • google appwordpress优化版4.7.4
  • 如何用群晖做自己的网站开公司如何做网站推广页面
  • 广州网站建设网站托管运营创建一个个人网站需要多少钱
  • 网站宣传文案范例那个网站可以做软件出售的
  • 商业网站建设预估收益百度电脑网页版
  • 长沙建网站设计公司创建网站平台
  • 网站怎么做网站收录wordpress 弹窗注册登录
  • 如何查询网站是不是asp做的2021中国十大软件公司排名
  • 大良建站公司行业现状织梦cms网站地图
  • 六安网站建设报价方案投资网站策划
  • 网站空间的建设psd免费素材网
  • 百度站长论坛万能引流软件
  • 宁夏做网站网页软件工具
  • 做网站用哪个软件写比较好wordpress 目录打不开