问题标签 [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.
c++ - 匿名管道
我编写了两个使用匿名管道进行通信的简短程序。父进程通过为子进程设置标准 IO 句柄来共享管道句柄:
子进程通过调用GetStdHandle获取读取管道句柄:
我的问题是:管道句柄是由调用CloseHandle () 的父进程创建的,一旦父子完成通信。
孩子也必须调用 CloseHandle() 吗?我在想,因为这些是标准的 IO 句柄,所以当进程折叠时它们会被自动释放。
谢谢!
windows - Win32:匿名管道上的事务
TransactNamedPipe 函数的文档声称“此参数也可以是匿名管道的句柄,由 CreatePipe 函数返回。” 这意味着可以在匿名管道上使用事务。据我了解,事务是读/写操作,匿名管道要么是读要么写——这对我来说没有意义。
- 真的可以使用匿名管道的事务吗?
- 如果是,如何?例如,从调用 CreatePipe 获得的两个句柄中的哪一个应该传递给 TransactNamedPipe?
c - 匿名管道和 Grep 命令
我正在尝试使用匿名管道实现以下管道:
该程序似乎挂在grep命令上,我不明白为什么。我尝试过使用其他一些命令而不是 grep,并且效果很好。
这是到目前为止的代码......
windows - 如何获取打开的匿名管道列表
作为对旧问题的跟进:如何获取 Windows 中所有打开的命名管道的列表?,我处于需要检查进程是否使用匿名管道与其子进程通信的情况。有没有办法做到这一点 ?我试过 pipelist 和 process-explorer 但看起来它们只显示 NamedPipes 列表
c++ - 需要澄清匿名管道
我正在阅读 MSDN 上的匿名管道。他们说:“进程还可以使用 DuplicateHandle 函数复制管道句柄,并使用某种形式的进程间通信(例如 DDE 或共享内存)将其发送到不相关的进程。”
我不相信这个说法。正如我们已经知道的那样,管道对于父子之间的通信很有用,并且重复句柄与原始句柄引用相同的对象。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365141%28v=vs.85%29.aspx
c# - 匿名管道是去这里的正确方式吗?
我有一个包含两个 exe 的应用程序。让我们称它们为MyApp.exe
and 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 文档。这似乎很简单,但有两件事我不清楚:
如何在两者之间传达管道句柄,以便首先建立管道?请记住,
MyApp.exe
可能已经在MyAppStarter.exe
执行点运行。在我的场景中,我想这
MyAppStarter.exe
将是服务器,而MyApp.exe
将是客户端。这意味着我必须设置一个计时器,MyApp.exe
每隔一段时间检查管道以获取来自MyAppStarter.exe
. 我对这个想法并不生气。只是这个要求是操作的一个很小的部分,MyApp.exe
所以它每秒触发一个计时器,或者无论如何经常看起来,我应该说,不太优雅。我会喜欢的,我可以简单地在 , 中定义一个函数MayApp.exe
,调用void PerformInstruction(string instruction)
它可以从MyAppStarter.exe
linux - Bash 匿名管道
在设计执行某个任务的命令链时,我遇到了匿名管道的行为不像预期的问题。由于我正在运行的原始命令太复杂,无法在这里解释,我创建了一个显示问题的示例(我知道所有这些命令基本上什么都不做)。另外,我正在使用 pv 来显示数据是否实际从输入复制到输出。
这按预期工作。(将数据从 /dev/zero 复制到 /dev/null)
这也可以按预期工作(复制数据并将两个副本发送到 /dev/null)
此命令仅部分有效。虽然从 STDIN 到 STDOUT 的副本仍然有效(一个 pv 将在短时间内显示进度),但整个命令被匿名管道停止,该管道不接收任何内容,因此 tee 停止,因为其中一个输出无法写入(我通过让它写入文件而不是 /dev/null 来检查这一点)。
如果有人有一个想法,为什么这在 bash 中不起作用(如预期的那样?),我会很高兴得到帮助。
PS:如果我使用 zsh 而不是 bash,命令会按预期运行。不幸的是,需要在其上运行的系统没有 zsh,我无法在该系统上部署 zsh。
c++ - 无法从/向匿名管道读取/写入
我正在为我的大学项目制作一个程序并且遇到了一些麻烦。我有一个名为“服务器”的进程正在启动其他一些名为“客户端”的进程。服务器进程可以读取和写入文件。客户端进程可以向服务器请求文件中的某篇文章,然后对其进行修改或读取。
我创建了一个匿名管道来在服务器和客户端之间共享文章,并将其写入和读取句柄放入每个客户端的命令行中,以便它可以对管道进行写入和读取。
问题是我无法从管道中读取信息。服务器:
客户:
我知道这是大量的代码,但是这里的所有内容都对调试程序很有用。如果你有任何建议如何让它更漂亮写评论,我会解决的。
python - 如何使用子进程或其他方法调用 lrzsz 命令?
如何使用 subprocess 或其他方法调用 lrzsz 命令?我这样做是因为只有串行端口支持。任何帮助将不胜感激。
.net - 匿名管道在应用程序之间移动加密密钥是否安全 (IPC)
我正在考虑将敏感数据(加密密钥)从 Windows 服务发送到 ADFS 插件。这会安全吗?