Windows 相当于 Linux fifo

Windows equivalent of Linux fifo

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

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

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

命名管道正是您想要的。如果您想将它们与 C 运行时一起使用,freadfwritefclose 使用 _popen_wpopen 函数来创建管道。在 Windows,管道是独立于文件名的命名空间的一部分。没有任何东西可以传递给 fopen 是等效的。