zoukankan      html  css  js  c++  java
  • mkfifo

    管道是Linux的十种文件类型之一,使用管道通信本质上还是以文件作为通信的媒介

    有名管道+无名管道=管道

    有名管道(FIFO文件):就是 有文件名的管道, 可以用于任意两个进程间的通信

    无名管道(pipe文件):就是没有文件名的管道, 只能用于父子进程之间的通信

    mkfifo

    $mkfifo	a.pipe
    $ls -l
    prw-rw-r--  1 jiang jiang     0 10月  7 08:47 pipe|
    

    创建有名管道,管道不能执行,不可写入, 就像吸管,一边堵死, 另外一头也传不进,就在管口堵着, 还是一个非常短,短到不能存储一丁点饮料的吸管只有读端打开的时候写端的数据才能通过管道抵达目的地, 管道本身可不会存放任何数据

    在terminal_1:

    $echo hello > pipe 	#打开管道的写端
    					#卡在那, 因为读端没有打开, 就像咬紧吸管不抽气, 饮料就进不到吸管
    

    在terminal_2:

    $cat   pipe			#打开管道的读端
    hello				#读端打开了, 管道就通了, 实现了在两个terminal(两个进程)之间的通信 
    

    回到terminal_1

    $echo hello > pipe 	#打开管道的写端
    $					#数据被传出了, terminal_1就结束卡顿了
    
  • 相关阅读:
    Numpy(0)
    C++(成员函数做友元)
    C++(类做友元)
    CUDA---Arrayfire---添加cuda kernel
    CUDA--Arrayfire--类型转换
    C++(友元)
    C++(const修饰成员函数)
    C++(空指针访问成员函数)
    第9章 整合前端
    第8章 离不开的数据库
  • 原文地址:https://www.cnblogs.com/xiaojiang1025/p/5935446.html
Copyright © 2011-2022 走看看