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

nba最新排名榜表抖音seo排名优化公司

nba最新排名榜表,抖音seo排名优化公司,如何做kindle电子书下载网站,建设银行签名通在网站哪里下载一、有名管道 有名管道与匿名管道的不同: 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。 FI…

一、有名管道 

  1. 有名管道与匿名管道的不同:

    • 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。
    • 与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。
  2. FIFO的打开和使用方式:

    • 一旦打开了有名管道,可以使用与操作匿名管道和其他文件相同的 I/O 系统调用,如 read()write()close()
  3. 数据交换顺序和先入先出(FIFO):

    • 与管道类似,有名管道也有一个写入端和读取端。
    • 从有名管道中读取数据的顺序与写入的顺序是一样的,符合先入先出(FIFO)的原则。
  4. FIFO的特点:

    • FIF0在文件系统中作为一个特殊文件存在,但其内容存放在内存中。
    • 当使用有名管道的进程退出后,FIFO文件仍然保存在文件系统中,以便以后使用。

 

 

 

 二、有名管道创建

  • 有名管道的路径和名称可以根据实际需求进行设置,但应遵循文件系统的规则。
  • 有名管道创建成功后,其他进程可以通过相同的路径和名称打开该有名管道,以进行进程间通信。
  • 在实际应用中,需要对返回值进行更详细的错误处理,并根据需要设置更复杂的权限模式。
/*创建fifo文件1. 通过命令 : mkfifo名字2. 通过函数 : int mkfifo(const char *pathname,mode_t mode);#include<sys/types.h>#include<sys/stat.h>int mkfifo(const char *pathname,mode_t mode);参数:-pathname: 管道名称的路径-mode: 文件的权限,和open的mode一样返回值:-成功:0-失败:-1,并设置错误号**/
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include <string.h>int main(){int ret =mkfifo("fifo1",0664);if(ret==-1){perror("mkfifo");exit(0);}return 0;
}

 三、案例

        一个用于向有名管道写入数据,另一个用于从有名管道中读取数据。这两个程序共同演示了有名管道的基本用法

 write端:

  • 判断文件是否存在,如果不存在则创建有名管道文件。
  • 以只写方式打开管道。
  • 使用 write 函数向管道中写入数据。

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>// 向管道中写数据
/*有名管道的注意事项:1.一个为只读而打开一个管道的进程会阻塞,直到另外一个进程为只写打开管道2.一个为只写而打开一个管道的进程会阻塞,直到另外一个进程为只读打开管道读管道:管道中有数据,read返回实际读到的字节数管道中无数据:管道写端被全部关闭,read返回0,(相当于读到文件末尾)写端没有全部被关闭,read阻塞等待写管道:管道读端被全部关闭,进行异常终止(收到一个SIGPIPE信号)管道读端没有全部关闭:管道已经满了,write会阻塞管道没有满,write将数据写入,并返回实际写入的字节数。
*/
int main() {// 1.判断文件是否存在int ret = access("test", F_OK);if(ret == -1) {printf("管道不存在,创建管道\n");// 2.创建管道文件ret = mkfifo("test", 0664);if(ret == -1) {perror("mkfifo");exit(0);}}// 3.以只写的方式打开管道int fd = open("test", O_WRONLY);if(fd == -1) {perror("open");exit(0);}// 写数据for(int i = 0; i < 100; i++) {char buf[1024];sprintf(buf, "hello, %d\n", i);printf("write data : %s\n", buf);write(fd, buf, strlen(buf));sleep(1);}close(fd);return 0;
}

read端:

  • 以只读方式打开管道。
  • 使用 read 函数从管道中读取数据。
  • 当写端关闭后,read 返回 0,程序检测到写端断开连接并退出。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>// 从管道中读取数据
int main() {// 1.打开管道文件int fd = open("test", O_RDONLY);if(fd == -1) {perror("open");exit(0);}// 读数据while(1) {char buf[1024] = {0};int len = read(fd, buf, sizeof(buf));if(len == 0) {printf("写端断开连接了...\n");break;}printf("recv buf : %s\n", buf);}close(fd);return 0;
}

http://www.zhongyajixie.com/news/58835.html

相关文章:

  • 镇江企业网站制作国内免费二级域名建站
  • 云主机怎么安装网站成人专业技能培训机构
  • 如何给一个网站做优化企业培训课程设置
  • 如何选择个人网站主题seo优化实训总结
  • 企业管理咨询类公司9个广州seo推广神技
  • 物流企业网站模板下载百度seo网络营销书
  • 电商网站开发可行分析上海优化外包公司排名
  • 我的世界做皮肤网站关键词包括哪些内容
  • 做音乐网站要求百度seo优化招聘
  • 域名不转出可以做网站吗百度推广优化怎么做
  • 自己建网站 知乎百度seo排名优化教程
  • 上海建设厅是哪个网站郑州seo网站排名
  • 同一个地方做几个网站湖南seo推广服务
  • 湘潭做网站口碑好磐石网络seo优化工具有哪些
  • 如何查看一个网站做的外链关键词查询工具包括哪些
  • 用html做网站搜索框网络服务商在哪咨询
  • wordpress建好站了打不开首页国内最好的危机公关公司
  • 凡客商城成都seo工程师
  • 企业集团网站建设方案论文整站关键词快速排名
  • 中国建设银行网站上不去李守洪
  • 苏州海外建站公司如何搜索网页关键词
  • 长春自媒体公司seo搜索引擎优化策略
  • 昆明网络推广公司搜索引擎优化怎么做的
  • 网站做装修免费刷粉网站推广
  • 网站开发人员应具备什么素质菏泽资深seo报价
  • 宇锋网站建设seo优化网络推广
  • 有哪些网站有做网页用的小图片发布软文平台
  • 政府门户网站模板下载成功的网络营销案例
  • 管理网站怎么做的站长权重
  • 企业网站建设策划书方案范文今日最新头条新闻条