pipename 直到我读到它: $ cat < pipena-6ren">
gpt4 book ai didi

linux - 如何创建一个不阻止写入器和读取器的 linux fifo "pipe"(或其他东西)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:00 25 4
gpt4 key购买 nike

我创建了一个 fifo 管道

$ mkfifo pipename

现在如果我往里面写东西,命令不会不返回,

$ echo "foo" > pipename

直到我读到它:

$ cat < pipename 
foo

此外,读取命令只有在写入内容后才会返回。

现在,我想创建一个这样的东西(实际上,也许这个东西不应该被认为是一个管道,而是某种缓冲区)

  • 读取命令将立即返回,无论管道中是否有东西(如果管道为空,则读取应立即返回零字节)
  • 写命令立即返回

谢谢

最佳答案

使用 fifo,但编写自己的读写器。打开设置为 O_NONBLOCK 的 fifo,如果没有其他进程打开另一端,open 将立即返回。您的写入命令将立即返回(按要求),但数据将会丢失。如果您希望数据持久保存,请使用常规文件。

关于linux - 如何创建一个不阻止写入器和读取器的 linux fifo "pipe"(或其他东西)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646592/

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