IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux 有名管道进程间的通信 -> 正文阅读

[系统运维]linux 有名管道进程间的通信

一 回顾

实验 ps aux | grp “bash”
 1 ps aux :父进程 grp “bash”:子进程 但是不能直接通信 
 2 需要把 父进程 重定向为管道 也就是换了输出位置 
 3 并且父进程从main 开始 ./a。out 打印的是 子进程 excpl 设定的信息 中的 参数的数据 而没有参数命令
4  ps aux | grp “bash” 才会出现 子进程读取父进程的东西  

二 有名管道

操作目录

因为是进程通信  所以在 ipc 目录下操作 

使用场景

没有血缘关系的 进程通信 

特点

伪文件 :不占磁盘空间
半双工通信 双方都可发送或者接收 只能在摸个时刻 

1 有名 管道 创建

在这里插入图片描述
形参

形参一:绝对路径
形参二:文件权限
#include<sys/stat.h>
#include<sys/types.h>

 int main()
 {
     int fifos;

     fifos=mkfifo("\home\ycy\ipc\myfifo",0755);

     if(fifos==-1)
     {
     printf("myfifo is error\n");
     return -1;
     }
     printf("myfifo is sueecss\n");
          
   return 0;
 }
 

在这里插入图片描述

p :管道类型的 文件 并且颜色加重了 

三 有名管道进程间的通信

在这里插入图片描述
在什么时候才会参数 fifo 呢

1 mdfifo 在创建 并不会产生fifo 而是会产生一个结点 结点指向 缓存区 但是缓存区的大小为零 
(队列的原因 流动性)
2 当使用open 函数时 管道才会产生新建的fifo函数 

1 直接撸代码

在这里插入图片描述

返回值为读取的字节数

#include<sys/stat.h>
#include<sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

 int main()
 {
     int fifos;
     int fd;
     int rs;
     char readbuff[128]={0};
     
     fifos=mkfifo("/home/ycy/ipc/myfifo",0755);

     if(fifos==-1)
     {
     printf("myfifo is error\n");
     return -1;
     }
     printf("myfifo is sueecss\n");
     
      fd=open("/home/ycy/ipc/myfifo",O_RDONLY);
      
      if(fd<0)
      {
          printf("open is error\n");
          perror("why");   
             return -1;  
      } 
      printf("open is sueecss\n");
     
      rs=read(fd,readbuff,128);
      
      printf("read is %s\n",readbuff);
      printf("read can is %d\n",rs);
       close(fd);
     
      return 0;
 }

在这里插入图片描述

为啥一直读出不了数据呢 因为管道没有内容 
所以是缺了“写入”函数 

在这里插入图片描述

#include<sys/stat.h>
#include<sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

 int main()
 {
     int fifos;
     int fd;
     int ws;
     char  *str="yi ding ke yi zuo chu lai de";
     
      fd=open("/home/ycy/ipc/myfifo",O_WRONLY);
      
      if(fd<0)
      {
          printf("open is error\n");
          perror("why");   
             return -1;  
      } 
      printf("open is sueecss\n");
   
      write(fd,str,strlen(str));
      
       close(fd);
     
      return 0;
 }

开另外的终端 编译 这个函数 

在这里插入图片描述

一定 成功  !!!!!!!!!!!
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:31:28  更:2022-04-29 12:33:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:59:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码