• 管道命令 pipe |


    在Linux中,管道是一种使用非常频繁的通信机制。从本质上说管道是一种让各个命令共享数据的一个文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为:

    一、限制管道的大小。

    实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的write()调用将默认地被阻塞,等待某些数据被读取,以便腾出足够的空间供write()调用写。

    二、读取进程也可能工作得比写进程快。

    当所有当前进程数据已被读取时,管道变空。当这种情况发生时,一个随后的read()调用将默认地被阻塞,等待某些数据被写入,这解决了read()调用返回文件结束的问题。  

    注意

    1. 从管道读数据是一次性操作,数据一旦被读,它就从管道中被抛弃,释放空间以便写更多的数据。

    2. 管道“|”只能处理由前面一个命令传来的正确信息,即 standard output,对于 standard error 不能处理。

    3. 管道命令必须要能将接收到的 standard output 数据转换为 standard input数据。

  • 相关阅读:
    Javascript 函数表达式
    当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
    Angularjs 脏值检测
    Angularjs 双向绑定机制解析
    AngularJS 初用总结
    从jquery里的$.ajax()到angularjs的$http
    XSS攻击及防御
    很赞的源码平台
    GET和POST
    [转]xxx.hbm.xml模版
  • 原文地址:https://www.cnblogs.com/orientsun/p/2608513.html
Copyright © 2020-2023  润新知