在linux中,哪个头文件指定了可在管道上写入的大小?
我在每个可配置周期捕获主应用程序的延迟,并将该数据写入管道。一个单独的报告过程会读取该管道。通常,主应用程序每秒交换大约10,000条消息。因此,给定一秒的周期,主应用程序为每个消息交换收集10k延迟数据点,然后将它们写入第二个边界的管道。我在这个场景中有以下问题
答案 0 :(得分:1)
F_SETPIPE_SZ
操作将管道缓冲区设置为/proc/sys/fs/pipe-max-size
。在早期版本中,没有,但我想您可以使用套接字机制。对于大多数用途来说它会慢一些,但你可以指定缓冲量达到wmem_max,请参阅socket(7),并且你对内核内存分配有一定的其他控制。