gpt4 book ai didi

c++ - 如何监控 FIFO 的读取和写入?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:25 28 4
gpt4 key购买 nike

应该如何监控通过 FIFO 的数据?简单地打开并继续观察是行不通的,因为如果监视器读取所有字节,则需要数据的实际程序将无法接收数据。

最佳答案

我不确定你那里有什么样的 FIFO(管道?套接字?也许你应该更详细地说明你的问题),但我知道前向阅读的唯一情况是套接字。

您可以将 recv() 与标志 MSG_PEEK 一起使用,效果如下:

This flag causes the receive operation to return data from the beginning of the receive queue without removing that data from the queue. Thus, a subsequent receive call will return the same data.

您也可以使用套接字实现 IPC ( unix(7) ),因此您可能希望将它们添加到您的项目中(如果您使用的是 linux/unix)。如果您想知道如何使用套接字,那么您应该阅读手册页:socket(2)socket(7)或者在 Windows 的情况下,recv()socket() .

您可能还想尝试使用 2 个 FIFO,一个到您的显示器,另一个从您的显示器到您的实际程序。然后你只需用你的显示器读取所有传入的数据并过滤相关部分并将它们直接写入你的实际程序。如果您的实际程序中有多个接收器并且想要拆分传入数据,这可能会派上用场。

如果只是想知道是否有数据可读,可以使用select(2) or pselect(2)或者也许 poll(2) , 或 select()

关于c++ - 如何监控 FIFO 的读取和写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893940/

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