【问题标题】:how to write large amounts of data into pipes in c如何在c中将大量数据写入管道
【发布时间】:2012-12-05 23:54:24
【问题描述】:

对于我的系统编程课程,我正在尝试使用管道在父进程和子进程之间进行通信。我有大量文本 (>64kB) 我想使用管道发送到子进程。子进程会定期读取文本。 在写的时候,如何检查管道是否已满?另外,我如何反复检查缓冲区是否已被清空(通过被子进程读取)并将下一个块写入缓冲区? 我知道我可以将整个字符串写到一个文件中,但我只是好奇是否有办法使用管道来实现这一点。

【问题讨论】:

  • 好吧,如果你继续写,它会阻塞,直到孩子读到一些数据,但我假设这不是你想要的?
  • 你没有尝试做这项工作是有充分理由的吗?到底是什么原因?
  • 如果我让另一个子进程写入管道怎么办?这会解决父进程的阻塞问题,不是吗?
  • 我没有尝试让它工作,因为我只是使用一个临时文件来实现它。我有一种感觉会变得更容易。

标签: c pipe


【解决方案1】:

Pipes 正在阻塞(除非您将其设置为非阻塞)。这解决了你的两个问题。

【讨论】:

    猜你喜欢
    • 2012-01-28
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    相关资源
    最近更新 更多