zoukankan      html  css  js  c++  java
  • Linux

    1、命名管道的特点:

    1)是管道,可用于非血缘关系的进程间的通信

    2)使用命名管道时,梁金成需要用路径表示通道。

    3)命名管道以FIFO的文件形式存储于文件系统中。(FIFO:总是按照先进先出的原则工作,第一个被写入的数据将首先从管道中读出。)

    4)命名管道是一个设备文件。(因此进程与创建FIFO的进程没有血缘关系,也可以通过访问路径进行通信。)

    2、命名管道的创建:(创建命名管道的系统函数有两个:mknod和mkfifo)

    头文件:(两个函数均在该头文件中)

    #include<sys/types.h>

    #include<sys/stat.h>

    函数原型:

    int mknod(const char *pathname,mode_t mode,dev_t dev);

    int mkfifo(const char *pathname,mode_t mode);

    返回值:(两个都一样)

    调用成功,返回0;调用失败,返回-1.

     

    mknod函数:

    参数pathname为创建的命名管道的全路径名;mod为创建命名管道的模式,指明其存取权限;dev为设备值,该值取决于文件创建的种类。它只在创建设备文件时才会用到。

    mkfifo函数:

    参数与mknod前两个参数含义相同。

    mknod是⽐较⽼的函数,⽽使⽤mkfifo函数更加简单和规范,所以建议在可能的情况下,尽量使⽤mkfifo⽽不是mknod。

    3、命名管道的实现:

    server读端:

    client写端:

    运行结果:

  • 相关阅读:
    English in 999
    面向对象程序设计
    HOOK相关
    很幽默的讲解六种Socket IO模型(转)(Delphi版本)[转]
    P2P之UDP穿透NAT原理并有UDP打洞的源码[转]
    分批导出数据库记录
    DELPHI Winsock完成端口[转]
    由数据库排序差异引起的错误一例总结
    适配器模式
    JQuery+Asp.net+Webservice组成的Autocomplete示例
  • 原文地址:https://www.cnblogs.com/hanxiaoyu/p/5837500.html
Copyright © 2011-2022 走看看