WinAPI 命名管道位置

Posted

技术标签:

【中文标题】WinAPI 命名管道位置【英文标题】:WinAPI Named Pipe location 【发布时间】:2012-10-29 21:22:29 【问题描述】:
HANDLE pipe = CreateFile( L"\\\\.\\pipe\\my_pipe",
                              GENERIC_READ, // only need read access
                              FILE_SHARE_READ | FILE_SHARE_WRITE,
                              NULL,
                              OPEN_EXISTING,
                              FILE_ATTRIBUTE_NORMAL,
                              NULL );

我是win api的新手,我想知道在硬盘上创建的“my_pipe”文件在哪里? 我在二进制文件或源代码附近找不到它

【问题讨论】:

【参考方案1】:

Windows 不遵循 UNIX 哲学“一切都是文件”,因此您使用内核 API 创建的命名对象不是文件,而是各种 NT 对象名称空间中的对象。您可以使用WinObj 等工具查看它们。

您可能想查看有关 Windows 中 object manager 的文章。

【讨论】:

@JohnSmith:对不起,这是一个愚蠢的评论。 “一切都是文件”的想法在技术上值得商榷(例如,/proc FS 对我来说就像一个可怕的 API),而 Dave Cutler(NT 内核结构之间的主要设计师)无疑是一个伟大的 操作系统设计师。我主要欣赏和使用 Linux,但这并不意味着操作系统设计中的其他选择不合理。 这是一个笑话,当然这是一个愚蠢的评论 :) 我无法忍受赢得胜利,这就是为什么我倾向于开愚蠢的笑话 :) 我该批评这些决定吗?...

以上是关于WinAPI 命名管道位置的主要内容,如果未能解决你的问题,请参考以下文章

C winapi 进程间通信(Named Pipe)。

命名管道(C#)

Linux进程间通信

Linux - 进程间通信 - 命名管道

windows命名管道

命名管道 232 管道正在关闭