gpt4 book ai didi

unix - 无限长管道技术

转载 作者:行者123 更新时间:2023-12-02 19:47:04 25 4
gpt4 key购买 nike

有两种非常简单的方法可以让一个程序向另一个程序发送数据流:

  • Unix 管道、TCP 套接字或类似的东西。这需要消费者程序不断关注,否则生产者程序会阻塞。即使增加缓冲区(通常很小的默认值),这仍然是一个大问题。
  • 纯文件 - 生产者程序附加 O_APPEND,消费者只需读取方便时可用的任何新数据。这不需要任何同步(只要磁盘空间可用),但 Unix 文件仅支持在末尾截断,而不是在开头截断,因此它将填满磁盘,直到两个程序退出。

有没有一种简单的方法可以实现这两种方式,将数据存储在磁盘上直到被读取,然后释放?显然,程序可以通过数据库服务器或类似的东西进行通信,并且不会出现这个问题,但我正在寻找与普通 Unix 管道集成良好的东西。

最佳答案

一个相对简单的手卷解决方案。

您可以让生产者创建文件并继续写入,直到达到一定大小/数量的记录,无论适合您的应用程序。然后,生产者关闭该文件并使用商定的命名算法启动一个新文件。

消费者从文件中读取新记录,然后当达到约定的最大大小时关闭并取消链接,然后打开下一个记录。

关于unix - 无限长管道技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3350392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com