草庐IT

管道化

全部标签

pipe - Windows 轮询或选择命名管道

我可以在Windows中对命名管道句柄使用选择和轮询吗?如果能举个例子就好了。(我对windows编程很陌生)如果其中一个进程宕机,而我正在另一端进行轮询,我会在另一个进程上收到任何错误消息,表明该进程已宕机吗? 最佳答案 不幸的是没有。Windows通过重叠的I/O和I/O完成端口促进异步通信的两种不同模式。简而言之,重叠I/O会在I/O操作完成时短暂接收回调。当I/O操作完成并允许应用程序同时扩展对多个套接字的处理时,IOCP在端口上接收事件。http://en.wikipedia.org/wiki/Iocp最坏的情况是,您可以

c# - 在 C# 中将输出管道输出到文本文件

我这里有一个方法,尽管我想将它的输出通过管道传输到一个文件,例如output.txt,我怎么能在这种情况下做到这一点?foreach(stringtmpLineinFile.ReadAllLines(@"c:\filename.txt")){if(File.Exists(tmpLine)){//output}} 最佳答案 通常命令行明智,你做mycommand>somefile.txt或mycommand|more这是有效的,因为输出被写入标准输出。你可以试试http://msdn.microsoft.com/en-us/libra

java - Windows 命令行上基于 Eclipse 的应用程序的输出仅在通过管道传输时可见(而不是直接在 cmd 中)

我们有一个基于Eclipse的Java应用程序(主类实现IApplication),它是从Windows命令行启动的。它在System.out上的输出不可见/打印到启动它的命令窗口中。然而,当将输出通过管道传输到more时,输出没有问题。怎么会?例如,考虑helloworld.exe。在命令窗口中运行C:\>helloworld.exe时,应用程序只会返回。但是当运行C:\>helloworld.exe|更多,屏幕显示C:>helloworld.exe|morehelloworldC:>在linux上,输出很好。如何在Windows上也看到输出?一些要求的信息:应用程序非常大。我可能无

Windows cmd docker 命令管道

我在WindowsCMD中找到了关于管道命令的说明:The"pipe"redirectstheoutputofaprogramorcommandtoasecondprogramorcommand.Syntax:Command1|Command2[Source](在最底部)然而dockerps-aq|dockerstart或任何类似的组合只会返回错误。在PowerShell中启动所有已停止容器的唯一有效组合。dockerstart$(dockerps-a-q-f"status=exited") 最佳答案 您可以pipeintodock

python - 使用标准输入管道控制 Windows 控制台应用程序

我正在尝试使用subprocess模块从Python控制控制台应用程序(Segger的JTAG应用程序)。该应用程序对于stdout的行为正确,但似乎没有读取stdin。如果启用shell,我可以输入输入并控制应用程序,但我需要以编程方式执行此操作。相同的代码可以很好地向cmd.exe等发出命令。我猜是直接读取键盘而不是标准输入。有什么想法可以发送应用程序输入吗?fromsubprocessimportPopen,PIPE,STDOUTjtag=Popen('"C:/ProgramFiles/SEGGER/JLinkARM_V402e/JLink.exe"',shell=True,un

windows - 一些实现命名管道通信的来源 btw 服务应用程序或帮助

我正在实现我自己的命名管道客户端/服务器类,但我遇到了太多麻烦,而且在Internet上没有太多相关信息。我已经找到了很多使用管道但使用vlc应用程序的实现,但我正在使用服务应用程序。我也接受有关如何使用管道的提示。我的实际问题是:当服务器应用程序只从客户端收到一条消息时,此后我的服务器不能再使用PeekNamedPipe()了。我从GetLastError收到的错误消息是“管道的另一端有一个进程”,但是......我不知道如何解决这个问题。如果我关闭客户端应用程序,我收到的消息是“管道正在关闭”,此后我无法建立客户端通信。谢谢 最佳答案

windows - 命名管道 Matlab

我无法找到在matlab中创建窗口命名管道的示例。关于如何编程或在哪里寻找任何建议? 最佳答案 使用.NET的System.IO.Pipes可能是开箱即用的最简单方法,比编写MEX文件来调用Win32API更容易。Matlab允许您直接从M代码调用.NET,并且管理对象,因此资源清理会更容易。.NET3.5和更新版本支持命名管道。生成的M代码看起来像这样。(抱歉;我目前没有Matlab,所以无法对其进行测试。)NET.addAssembly('System.Core');%#mightbesuperfluouspipeStream=

windows - Powershell get-service 通过管道传输到停止进程

Get-Service|Stop-Process-NameWSearch-WhatIfStop-Process:Theinputobjectcannotbeboundtoanyparametersforthecommandeitherbecausethecommanddoesnottakepipelineinputortheinputanditspropertiesdonotmatchanyoftheparametersthattakepipelineinput.Atline:1char:15+Get-Service|Stop-Process-NameWSearch-WhatIf+~~

windows - 创建进程退出时 Windows 中的命名管道会发生什么情况?

场景:进程使用CreateNamedPipe()创建管道并使用ConnectNamedPipe()连接到它,传输一些数据,然后退出(没有清理)。管道是否持续存在?它的另一面是在不同的进程中使用CreateFile()打开的,是否在创建进程退出时出错?更一般地说,命名管道的生命周期是多长?应该如何清理陈旧的管道? 最佳答案 管道是内核对象,它们会一直存在,直到所有关闭它们上的句柄。如果客户端没有好好说再见而其他进程继续使用它,您可能会得到ERROR_BROKEN_PIPE。 关于windo

windows - 为什么我无法在 Windows 10 中运行的 jenkins 管道中运行批处理文件?

我正在尝试运行jenkins工作区内的批处理脚本。我写了一个如下的groovy脚本来做到这一点stage('batchscript'){steps{bat'startcmd.exe/cC:\\ProgramFiles(x86)\\Jenkins\\workspace\\jenkinsProject\\batchfile.bat'\}}当我构建作业时,它应该打开一个新的命令窗口并在新的命令提示符下运行我的批处理文件,执行所有bat命令。构建成功但没有打开命令窗口。任何建议都会有帮助 最佳答案 Jenkins的目标是在后台模式下执行sh