• [apue] 测试管道容量的一些疑问


    所谓管道的容量,指不消费(读)的情况下,最大能写入的数据量。有两种方式来测试一个管道的容量:

    1)使用阻塞写,每次写一个字节,并打印写入的总字节数,最后写入阻塞时,上次打印的就是管道的容量;

    2)使用非阻塞写,每次也只写一个字节,直到写入失败(返回-1),打印一次总的写入量,就是管道的容量。

    环境:CentOS 6.7

    分别使用上述两种方法,测得管道容量:

    1) 3112948 字节 (<3MB)

    2)8527860 字节 (<8MB)

    首先说明一下,系统定义的PIPE_BUF(4096)表示可以一次写入的最大原子数据量,并不是管道容量。

    那么问题来了,为什么同步与异步写入,所测得的结果不一样,且相差这么大呢?

    测试代码

  • 相关阅读:
    5059 一起去打CS
    2439 降雨量
    vijos P1037搭建双塔
    4979 数塔
    2596 售货员的难题
    P2342 叠积木
    1540 银河英雄传说
    1051 接龙游戏
    hdu1251
    洛谷P1717 钓鱼
  • 原文地址:https://www.cnblogs.com/goodcitizen/p/pipe_capacity_problem.html
Copyright © 2020-2023  润新知