首页 > 其他分享 >无名管道

无名管道

时间:2023-04-20 21:33:25浏览次数:29  
标签:return int pipefd flag 无名 管道 close buf

#include "stdio.h"
#include "unistd.h"
#include "string.h"

int main(void) {
    int pipefd[2];
    // 创建无名管道,pipefd[0]读端 pipefd[1]写端
    if (pipe(pipefd) == -1) {
        perror("pipe");
    }
    int pid = fork();
    if (pid == 0) {
        close(pipefd[1]);
        for (;;) {
            char buf[128];
            int flag = read(pipefd[0], buf, sizeof(buf));
            if (flag == -1) {
                perror("read");
                return -1;
            }
            if (flag == 0) {
                break;
            }
            printf(">>%s", buf);
        }
        close(pipefd[0]);
        return 0;
    }
    close(pipefd[0]);
    for (;;) {
        char buf[128];
        fgets(buf, sizeof(buf), stdin);
        if (strcmp(buf, "!\n") == 0) {
            break;
        }
        if (write(pipefd[1], buf, strlen(buf)) == -1) {
            perror("write");
            return -1;
        }
    }
    close(pipefd[1]);
    return 0;
}

 

标签:return,int,pipefd,flag,无名,管道,close,buf
From: https://www.cnblogs.com/wtil/p/17338425.html

相关文章

  • Redis Pipeline(管道)
    RedisPipeline简介Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。一次Redis客户端发起的请求,经过服务端的响应后,大致会经历如下的步骤:客户端发起一个(查询/插入)请求,并监听socket返回,通常情况都是阻塞模式等待Redis服务器的响应服务端处理命令,并且返回处理结果......
  • 数据管道
     [Eatsdataplatform:Empoweringbusinesseswithdata](https://medium.com/coupang-engineering/eats-data-platform-empowering-businesses-with-data-3cc00fa9968d)[Eatsdataplatform:Servicesformachinelearningandaudiencesegmentation](https://medium.com......
  • redis-3,redis事务和管道和发布订阅
    redis事务保证数据的一致性,具有原子性的命令setk1v1getk1在一个队列里有一次性的,排他性的执行一系列操作multicmd1cmd2execredis数据库事务redis的事务仅仅是保证事务的操作会被连续单独的执行,redis命令的执行是单线程架构,在执行完事务内所有的命令前是不会执行......
  • “西氢东送”,我国首个纯氢长输管道项目正式启动
    今天,我国首个纯氢长输管道项目正式启动,这是全国最长距离的输氢管道。4月10日,中国石化宣布,“西氢东送”输氢管道示范工程已被纳入《石油天然气“全国一张网”建设实施方案》,标志着我国氢气长距离输送管道进入新发展阶段。“西氢东送”起于内蒙古自治区乌兰察布市,终点位于北京市的......
  • proe5.0学习笔记(13)建模练习-管道
    1.建模练习-管道        点击名称下面一行  第一个点和第二个点的位置  ......
  • 有名管道介绍及使用
    有名管道简介:匿名管道,由于没有名字只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道(FIFO),也叫命名管道、FIFO文件。有名管道(FIFO)不同于匿名管道之处在于它提供了一个路径名与之关联,以FIFO的文件形式存在于文件系统中,并且其打开方式和打开一个普通文件是一样的。这......
  • 进程间通信方式--匿名管道通信
    管道的特点管道其实是一个在内核内存中维护的缓冲器,这个缓冲器的存储能力时有限的,不同的操作系统大小不一定相同。管道拥有文件的特质:读操作、写操作,匿名管道没有文件实体,有名管道由文件实体,但不存储数据。可以按照操作文件的方式对管道进行操作。一个管道是一个字节流,试用管......
  • ASP.NET Core MVC 请求处理管道原理
     ASP.NETCoreMVC和RazorPages应用的完整请求处理管道   Endpoint包含 MVC和RazorPages ......
  • 命令管道
    grep命令文件过滤分割与合并grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。选项-a不要忽略二进制数据。-A<显示列数>除了显示符合范本样式......
  • 命令行上的数据科学第二版:八、并行管道
    原文:https://datascienceatthecommandline.com/2e/chapter-8-parallel-pipelines.html在前面的章节中,我们一直在处理一次性处理整个任务的命令和管道。然而,在实践中,您可......