`
memorymyann
  • 浏览: 271205 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

命名管道实现样例

阅读更多

[root@liumengli name_pipe]# mknod my_pipe p (创建命名管道,也可以通过系统调用来安装)

[root@liumengli name_pipe]# cat name_pipe_read.c
#include "stdio.h"
#include "unistd.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "errno.h"
#include "fcntl.h"

int main() {
        char buf[20];
        int pipe_read;
        int n_read;


        pipe_read = open("./my_pipe", O_RDONLY, 0);

       //打开管道,只读方式,注意与下面的区别,读者可以自己试试,可能参数有错,自己可以找到

        //pipe_read = open("./my_pipe", O_RDONLY|O_NONBLOCK, 0);

        if(pipe_read == -1) {
                printf("error\n");
                return 1;
        }

        memset(buf, 0, sizeof(buf));
        n_read = read(pipe_read, buf, 20);
        printf("You read %d chars\n", n_read);
        printf("%s\n", buf);
        return 0;
}

//读管道程序

[root@liumengli name_pipe]# cat name_pipe_read.c
#include "stdio.h"
#include "unistd.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "errno.h"
#include "fcntl.h"

int main() {
        char buf[20];
        int pipe_read;
        int n_read;


        pipe_read = open("./my_pipe", O_RDONLY, 0);

        if(pipe_read == -1) {
                printf("error\n");
                return 1;
        }

        memset(buf, 0, sizeof(buf));
        n_read = read(pipe_read, buf, 20);
        printf("You read %d chars\n", n_read);
        printf("%s\n", buf);
        return 0;
}
//写管道程序,2个进程通过my_pipe命名管道通信,如果对命名管道有兴趣,可以留言.

分享到:
评论

相关推荐

    数据库系统原理实验报告.pdf

    本实验报告旨在熟悉SQL Server 2005的使用和管理,了解客户/服务器模式、命名管道协议和TCP/IP协议的差别,掌握SQL Server 2005的企业管理器、查询分析器和客户端/服务器端网络实用工具的使用。 一、实验目的: * ...

    信息学奥赛2020年NOIP真题

    1. **文件名和函数名:**确保使用英文小写字母命名文件名、程序名和输入输出文件名。 2. **主函数返回值类型:**在C/C++中,`main()`函数的返回值类型必须是`int`,正常结束时的返回值应为0。 3. **源代码文件放置...

    BEA Tuxedo Application Administration A11 & B11 Labs Guide

    5. **通信机制**:了解Tuxedo的客户端和服务器之间的消息传递,包括TCP/IP和命名管道等通信方式。 B11实验室则可能涵盖: 1. **性能调优**:通过调整Tuxedo参数和配置来提高系统的响应速度和吞吐量。 2. **故障...

    linux内核实验指导

    - **分类**: Linux中的管道主要有两种类型——无名管道和命名管道(FIFO)。 - **用途**: 用于进程间的通信,实现数据流的定向传递。 **2.2.3 一个简易的 shell 解释系统样例** - **实现**: 使用C语言编写简单的...

    Advanced Linux Programming(英文原版)

    - 使用管道、命名管道进行通信 - 消息队列与共享内存的具体实现案例 - 套接字编程简介 #### 二、精通Linux **6. 设备驱动** - **概述:** 本章重点在于Linux设备驱动程序的设计与实现。 - **知识点:** - 设备...

    DB2常用傻瓜问题1000问

    - NAMEPIPE:Windows平台的命名管道通信。 4. **DB2客户端类型**: - DB2运行时间客户端(DB2RUNTIMECLIENT):仅用于执行已编译的SQL。 - DB2管理客户端(DB2ADMINISTRATIONCLIENT):包含管理和监控工具。 - ...

    精通Windows.API-函数、接口、编程实例.pdf

    11.2.1 创建命名管道 300 11.2.2 管道监听 302 11.2.3 使用异步I/O进行读写 303 11.2.4 关闭管道实例 307 11.2.5 客户端 307 11.3 剪贴板 310 11.3.1 获取、设置剪贴板数据 310 11.3.2 监视剪贴板 ...

    AzureRMPipeline回购

    在本场景中,"AzureRMPipeline回购"可能是指一个存储了与Azure Pipelines相关的配置、脚本或样例的代码仓库。 文件名称列表中的“AzureRMPipeline-repo-master”暗示这是一个主分支的代码仓库副本,通常在Git等版本...

    FsUnit:FsUnit使使用F#进行单元测试更加愉快。 它为您喜欢的.NET测试框架添加了一种特殊的语法

    2. **导入FsUnit命名空间**:在测试文件中,导入FsUnit的命名空间,这样就可以使用其提供的断言了。例如,对于xUnit,你可能需要写入`open FsUnit.xunit`。 3. **编写测试**:使用FsUnit的断言来定义测试用例。每个...

    ose_composition_cevi

    4. **开发流程**:指导开发者如何在OpenShift CEVI环境中创建、测试和部署应用,可能包括使用OpenShift CLI(oc命令行工具)、持续集成/持续部署(CI/CD)管道、源到镜像(S2I)构建过程等。 5. **安全性和权限管理**...

    kubkafka1:TestKafkaKubernetes

    Apache Kafka 是一个分布式流处理平台,常用于实时数据管道和消息系统。而 Kubernetes 是一个容器编排系统,用于自动化容器化应用的部署、扩展和管理。 【描述】中的 "kubkafka1" 可能是指一个特定的项目或实验,...

    DB2常用傻瓜问题1000问(一)第1/2页

    - **NamePipe:** Windows平台上的命名管道通信。 #### 4. DB2客户端产品 - **DB2 Runtime Client:** 提供基本的客户端功能,支持数据库访问。 - **DB2 Administration Client:** 包含更强大的管理工具,便于数据库...

    精通WindowsAPI 函数 接口 编程实例

    11.2.1 创建命名管道 300 11.2.2 管道监听 302 11.2.3 使用异步I/O进行读写 303 11.2.4 关闭管道实例 307 11.2.5 客户端 307 11.3 剪贴板 310 11.3.1 获取、设置剪贴板数据 310 11.3.2 监视剪贴板 ...

Global site tag (gtag.js) - Google Analytics