gpt4 book ai didi

windows - Fifo 文件 Windows 示例

转载 作者:可可西里 更新时间:2023-11-01 12:21:26 29 4
gpt4 key购买 nike

我想知道是否有适用于 Linux mkfifo 的 Windows 等价物。等价地,我指的是使用 st_mode S_IFIFO 创建文件的方式。感谢您的回答。

最佳答案

应该可以在某种程度上模拟mkfifo行为。很多年前我已经为 OS/2 实现了类似的东西这在文件系统方面与 WinXX 非常相似。

主要限制是 Windows 使用保留文件名 用于管道:\\.\pipe\pipename\\servername\pipe\pipename 通过网络(这可能非常有用)。但是您不能直接使用任意的 fifo 名称。管道名称需要\\.\pipe\前缀。

但是,应用程序可以使用 CreateNamedPipePIPE_ACCESS_DUPLEX 创建管道,例如一个 GUID 名称,并使用 DeviceIoControl/FSCTL_SET_REPARSE_POINT在目标目录中创建指向此管道的符号链接(symbolic link)。这应该非常接近 mkfifo

缺点是只要管道实例存在,为管道提供服务的应用程序就必须运行。当然,它应该在终止时清理符号链接(symbolic link)。此外,它需要从管道中读取所有数据并再次写回。不确定这是否可以用零拷贝实现。

还有一些更进一步的方面。例如。如果您希望能够删除您的模拟 FIFO,您需要跟踪符号链接(symbolic link)的删除并在这种情况下终止工作进程。

很抱歉,我没有Windows开发环境,所以无法测试这种方法。

关于windows - Fifo 文件 Windows 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31625417/

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