【问题标题】:Windows equivalent of Linux fifoWindows 等效于 Linux fifo
【发布时间】:2018-08-05 02:32:20
【问题描述】:

我使用库中的一个函数,该函数将文件名作为参数。在我的应用程序中,我从网络接收数据,因此我无法直接将下载的数据提供给库,因为我无法将其写入磁盘。为了解决这个问题,我使用了 Linux fifo(使用 mkfifo() 创建)并将 fifo 名称赋予库。

现在我必须将代码移植到 Windows,并且我正在寻找与 Linux fifo 机制等效的东西。我已经尝试过Windows Named Pipe,但这些管道无法像使用fopen() 等标准库函数的常规文件一样打开(除非我遗漏了什么)。

您知道 Windows 将数据作为文件从内存中读取的机制吗?

【问题讨论】:

    标签: c++ windows ipc named-pipes fifo


    【解决方案1】:

    命名管道实际上就是你想要的。如果您想将它们与 C 运行时一起使用,freadfwritefclose 使用 _popen_wpopen 函数来创建管道。在 Windows 上,管道是与文件名分开的命名空间的一部分。没有什么可以传递给 fopen 的等效项。

    【讨论】:

    • CreateFile(fopen 所依赖的 API)可以打开现有命名管道的客户端,但不能自己创建管道。
    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 2019-07-30
    • 1970-01-01
    • 2010-09-08
    • 2023-03-03
    • 2010-09-29
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多