问题标签 [named-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 投票
4 回答
423 浏览

.net - 如何从另一个 .NET 进程获取对象的句柄?

在 C# 中,我知道如何从代码中运行 .NET 可执行文件,并且还知道该可执行文件的实例是否已经在运行。我想做的是,如果一个实例已经在运行,则Foo在不同可执行文件的 C# 代码中获取该对象的一个​​实例。

我有一个 Windows 应用程序(例如 Outlook 的 .NET 版本)。用户可以正常使用该应用程序,但在后台运行的还有一个进程正在监视来自第三方系统的 XML 文件。

我需要的是让观察者进程在它没有运行时启动.NET程序(或者如果它是获取一个句柄),然后CreateEmail在新的/现有的进程中调用对象实例的方法。

0 投票
1 回答
3461 浏览

winapi - 用作 CreateProcess 的标准输出的无缓冲 CreateNamedPipe

我想执行任意命令行应用程序并在其生成时读取其标准输出。我CreateNamedPipe用来创建一个管道,然后将另一端(打开使用CreateFile)提供给CreateProcess. 如果目标进程没有明确地使用标准输出缓冲进行操作,有没有办法确保有问题的管道没有缓冲,或者至少系统最小值用作缓冲大小?

0 投票
3 回答
15799 浏览

java - 使用 Java 读/写到 linux Pipe

我的问题是在 Java 中读取/写入 linux Pipe 的最佳方式是什么?我已经在使用 java.io.RandomAccessFile 之类的了

然后将其传递给工作线程,工作线程每 2ms 读取一次

它确实从管道中读取它,但我怀疑某些字节被覆盖了。你知道 linux (ubuntu) 如何处理管道的缓冲区吗?

0 投票
1 回答
665 浏览

mysql - FreeBSD、MySQL、Perl、bash:命名管道上的间歇性阻塞?

这很奇怪,我不确定真正的罪魁祸首是谁。

我正在编写一些脚本,在 FreeBSD (6.2) 上?它广泛使用了以下***bash***ism:

...其中“do_something 是一个有点笨拙的实用程序(在 Perl 中),它不会从管道中读取。如果我使用常规文件,它工作正常。我的bash脚本使用诸如此类exec 4< <(...)查询之类的东西(接下来是表格while read x y z <&4; do ...似乎从来没有任何问题。

但是,Perl (5.8.x) 似乎会定期阻塞(显然是永远阻塞)。我尝试chomp(my $data = <MYDATA>);用一​​个使用sysread的例程来改变它,并用 Python 编写了一些测试用例进行比较。这些似乎比惯用的 Perl 代码阻塞的频率要低得多,但有时它们仍然会这样做。(使用f.read()or的 Python 代码os.read(f.fileno()...)似乎在这个问题上表现得差不多)。

我已经尝试使用... <(cat ...)(我在cat常规文件的地方)重现该问题,但这似乎永远不会重现该停顿。

我浏览了一些ktrace/kdump数据……但我对 Linux strace甚至 Solaris truss更加熟悉……所以我还没有弄清楚那里发生了什么。

我想我们基本上可以排除 Perl,因为我已经使用 Python 重现了同样的问题......我看不出bash在这里做错了什么(它只是在/var/tmp/sh中创建了一个命名管道-np-xxx并将进程连接到那个)。

mysql shell/utility 正在做什么可能会导致这种情况?我认为我没有从其他任何东西(例如catdd)中看到它。我还没有在 Linux 下测试过这个场景……但我已经在 Linux 下使用<(...)了(进程替换)多年,并且不记得曾经见过这个。

是 FreeBSD 的问题吗?

当然我可以使用临时文件解决这个问题......但我肯定更愿意理解它为什么这样做(并避免临时文件带来的一些竞争和清理混乱)。

有什么建议么?

0 投票
2 回答
1385 浏览

java - 是否有一种跨平台的方式来处理 Java 中的命名管道,或者我应该自己编写?

我正在编写一些 JNI 代码,其中运行在系统上各种进程的进程空间中的 DLL 需要与 java 进程对话。在权衡了共享内存/套接字/rpc 等之后,我决定使用命名管道来执行此操作(出于各种原因)。我的问题是,有没有一种很好的方法来处理 Java 中的命名管道,或者我应该写一个?

0 投票
1 回答
1092 浏览

.net - C++中的NamedPipeClientStream StreamReader问题

当使用 .net NamedPipeClientStream类从 NamedPipes 服务器读取数据时,我只能在 C++ 中第一次读取时获取数据,每次它只是一个空字符串。在 c# 中,它每次都有效。

0 投票
2 回答
742 浏览

perl - 命名管道 IPC

我正在尝试创建一个管道以在两个进程之间使用来发送信息。这两个进程不相关,使用信号的实现存在一个问题,如果接收信号的进程正在执行 sys 命令,它会将信号解释为中断。我是 perl 的新手,所以任何尝试让两个进程使用管道的帮助都会非常棒!

0 投票
2 回答
3720 浏览

windows-7 - 为什么命名管道是本地的?

我记得使用命名管道在两台机器之间进行通信(回到 Windows NT 中)。为什么现在我读到命名管道仅用于同一台机器中的进程间通信?(在 Vista 和 Windows 7 中)

0 投票
1 回答
2215 浏览

c# - 远程关闭后保持管道打开的最佳方法

使用本教程,我想出了下面的代码。我的客户经常运行。它通过点击激活,在某些情况下可能会同时启动两次。我担心一个客户端可能会在另一个客户端打开时关闭,这会导致管道在几毫秒内关闭。保持管道畅通的最佳方法是什么?

0 投票
1 回答
1562 浏览

windows-xp - XP 上的远程命名管道连接被拒绝

我有一个我正在尝试实现的简单设计。

单个基于 C++ 的服务器应用程序创建一个只写的命名管道。多个客户端(C++ 或 C#)以只读方式连接并侦听状态消息。

我有这个适用于本地进程,但我无法将不同主机上的客户端连接到服务器。

服务器在 XP SP2(可能是 SP3)上运行。客户端在 Win7 上运行。

在最后一个参数中用 &sa 替换 NULL 无效。C# 客户端代码如下所示。

我在这里错过了什么愚蠢的显而易见的事情?