问题标签 [anonymous-pipes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2520 浏览

c++ - 匿名管道

我编写了两个使用匿名管道进行通信的简短程序。父进程通过为子进程设置标准 IO 句柄来共享管道句柄:

子进程通过调用GetStdHandle获取读取管道句柄:

我的问题是:管道句柄是由调用CloseHandle () 的父进程创建的,一旦父子完成通信。

孩子也必须调用 CloseHandle() 吗?我在想,因为这些是标准的 IO 句柄,所以当进程折叠时它们会被自动释放。

谢谢!

0 投票
1 回答
532 浏览

windows - Win32:匿名管道上的事务

TransactNamedPipe 函数的文档声称“此参数也可以是匿名管道的句柄,由 CreatePipe 函数返回。” 这意味着可以在匿名管道上使用事务。据我了解,事务是读/写操作,匿名管道要么是读要么写——这对我来说没有意义。

  1. 真的可以使用匿名管道的事务吗?
  2. 如果是,如何?例如,从调用 CreatePipe 获得的两个句柄中的哪一个应该传递给 TransactNamedPipe?
0 投票
2 回答
1250 浏览

c - 匿名管道和 Grep 命令

我正在尝试使用匿名管道实现以下管道

该程序似乎挂在grep命令上,我不明白为什么。我尝试过使用其他一些命令而不是 grep,并且效果很好。

这是到目前为止的代码......

0 投票
1 回答
996 浏览

windows - 如何获取打开的匿名管道列表

作为对旧问题的跟进:如何获取 Windows 中所有打开的命名管道的列表?,我处于需要检查进程是否使用匿名管道与其子进程通信的情况。有没有办法做到这一点 ?我试过 pipelist 和 process-explorer 但看起来它们只显示 NamedPipes 列表

0 投票
0 回答
416 浏览

c++ - 需要澄清匿名管道

我正在阅读 MSDN 上的匿名管道。他们说:“进程还可以使用 DuplicateHandle 函数复制管道句柄,并使用某种形式的进程间通信(例如 DDE 或共享内存)将其发送到不相关的进程。”

我不相信这个说法。正如我们已经知道的那样,管道对于父子之间的通信很有用,并且重复句柄与原始句柄引用相同的对象。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365141%28v=vs.85%29.aspx

0 投票
2 回答
1928 浏览

c# - 匿名管道是去这里的正确方式吗?

我有一个包含两个 exe 的应用程序。让我们称它们为MyApp.exeand MyAppStarter.exe。我MyAppStarter.exe这样做的原因是它可以首先在网络上检查是否有MyApp.exe可用的新版本,以便它可以在启动之前复制它 - 但现在这有点离题了。

我想要实现的是能够注册一个自定义 URL 协议处理程序,MyAppStarter.exe以便我可以将某种起始条件传递给MyApp.exe. 例如,如果用户单击电子邮件中指向myapp://userid=123的链接,它应该启动应用程序并立即查看用户 ID 为 123 的用户。或者如果链接是myapp://accid=456它应该立即使用 accid 456 查看帐户。我知道该怎么做,方法是注册自定义 URL 协议处理程序MyAppStarter.exe,然后MyApp.exe使用某些参数注册 shell。到目前为止,一切都很好。

现在的问题是,应该MyApp.exe已经在运行,我想MyAppStarter.exe识别(我可以这样做)并给它焦点(我也可以这样做)并指示它显示用户或帐户或具有指定 id 的任何内容(这是我卡住的地方)。

我查看了有关如何使用匿名管道进行本地进程间通信的 MSDN 文档。这似乎很简单,但有两件事我不清楚:

  1. 如何在两者之间传达管道句柄,以便首先建立管道?请记住,MyApp.exe可能已经在MyAppStarter.exe执行点运行。

  2. 在我的场景中,我想这MyAppStarter.exe将是服务器,而MyApp.exe将是客户端。这意味着我必须设置一个计时器,MyApp.exe每隔一段时间检查管道以获取来自MyAppStarter.exe. 我对这个想法并不生气。只是这个要求是操作的一个很小的部分,MyApp.exe所以它每秒触发一个计时器,或者无论如何经常看起来,我应该说,不太优雅。我会喜欢的,我可以简单地在 , 中定义一个函数MayApp.exe,调用void PerformInstruction(string instruction)它可以从MyAppStarter.exe

0 投票
1 回答
3248 浏览

linux - Bash 匿名管道

在设计执行某个任务的命令链时,我遇到了匿名管道的行为不像预期的问题。由于我正在运行的原始命令太复杂,无法在这里解释,我创建了一个显示问题的示例(我知道所有这些命令基本上什么都不做)。另外,我正在使用 pv 来显示数据是否实际从输入复制到输出。

这按预期工作。(将数据从 /dev/zero 复制到 /dev/null)

这也可以按预期工作(复制数据并将两个副本发送到 /dev/null)

此命令仅部分有效。虽然从 STDIN 到 STDOUT 的副本仍然有效(一个 pv 将在短时间内显示进度),但整个命令被匿名管道停止,该管道不接收任何内容,因此 tee 停止,因为其中一个输出无法写入(我通过让它写入文件而不是 /dev/null 来检查这一点)。

如果有人有一个想法,为什么这在 bash 中不起作用(如预期的那样?),我会很高兴得到帮助。

PS:如果我使用 zsh 而不是 bash,命令会按预期运行。不幸的是,需要在其上运行的系统没有 zsh,我无法在该系统上部署 zsh。

0 投票
0 回答
544 浏览

c++ - 无法从/向匿名管道读取/写入

我正在为我的大学项目制作一个程序并且遇到了一些麻烦。我有一个名为“服务器”的进程正在启动其他一些名为“客户端”的进程。服务器进程可以读取和写入文件。客户端进程可以向服务器请求文件中的某篇文章,然后对其进行修改或读取。

我创建了一个匿名管道来在服务器和客户端之间共享文章,并将其写入和读取句柄放入每个客户端的命令行中,以便它可以对管道进行写入和读取。

问题是我无法从管道中读取信息。服务器:

客户:

我知道这是大量的代码,但是这里的所有内容都对调试程序很有用。如果你有任何建议如何让它更漂亮写评论,我会解决的。

0 投票
0 回答
126 浏览

python - 如何使用子进程或其他方法调用 lrzsz 命令?

如何使用 subprocess 或其他方法调用 lrzsz 命令?我这样做是因为只有串行端口支持。任何帮助将不胜感激。

0 投票
0 回答
234 浏览

.net - 匿名管道在应用程序之间移动加密密钥是否安全 (IPC)

我正在考虑将敏感数据(加密密钥)从 Windows 服务发送到 ADFS 插件。这会安全吗?