Windows 相当于 Linux fifo
Windows equivalent of Linux fifo
我使用库中的一个函数,该函数将文件名作为参数。在我的应用程序中,我从网络接收数据,所以我无法将下载的数据直接提供给图书馆,因为我无法将其写入磁盘。为了解决这个问题,我使用 Linux fifo(使用 mkfifo()
创建)并将 fifo 名称提供给库。
现在我必须将代码移植到 Windows 并且我正在寻找与 Linux fifo 机制等效的方法。我已经尝试过 Windows Named Pipe 但这些管道无法像具有 fopen()
等标准库函数的常规文件一样打开(除非我遗漏了什么)。
您知道 Windows 将内存中的数据作为文件读取的机制吗?
命名管道正是您想要的。如果您想将它们与 C 运行时一起使用,fread
、fwrite
和 fclose
使用 _popen
或 _wpopen
函数来创建管道。在 Windows,管道是独立于文件名的命名空间的一部分。没有任何东西可以传递给 fopen
是等效的。
我使用库中的一个函数,该函数将文件名作为参数。在我的应用程序中,我从网络接收数据,所以我无法将下载的数据直接提供给图书馆,因为我无法将其写入磁盘。为了解决这个问题,我使用 Linux fifo(使用 mkfifo()
创建)并将 fifo 名称提供给库。
现在我必须将代码移植到 Windows 并且我正在寻找与 Linux fifo 机制等效的方法。我已经尝试过 Windows Named Pipe 但这些管道无法像具有 fopen()
等标准库函数的常规文件一样打开(除非我遗漏了什么)。
您知道 Windows 将内存中的数据作为文件读取的机制吗?
命名管道正是您想要的。如果您想将它们与 C 运行时一起使用,fread
、fwrite
和 fclose
使用 _popen
或 _wpopen
函数来创建管道。在 Windows,管道是独立于文件名的命名空间的一部分。没有任何东西可以传递给 fopen
是等效的。