草庐IT

匿名管道

全部标签

windows - Teamcity 管道命令行输出到文件

是否可以在teamcity中调用命令行程序并将命令行程序的输出通过管道传输到文件? 最佳答案 您可能正在寻找类似于:http://confluence.jetbrains.com/display/TCD7/Command+Line的内容选项。在“构建步骤”中-您可以选择“命令行”作为运行器类型,并在“运行”中选择“自定义脚本”并编写要在“自定义脚本”文本区域中执行的shell命令行。echo"Hellothere!!"|teesomeFile.log如果你想...添加到工件路径 关于wi

c++ - 如何获取命名管道中要(可靠地)读取的数据长度?

我创建了一个带有以下标志的命名管道:PIPE_ACCESS_DUPLEX-双方读/写访问权限PIPE_TYPE_MESSAGE-已读消息类型PIPE_WAIT-阻塞读\写我从服务器端调用ConnectNamedPipe并等待客户端连接。我从客户端调用CallNamedPipe连接服务器并写入长度为N的数据。在服务器端:客户端连接后,PeekNamedPipe被调用以获取分配给读取数据缓冲区的缓冲区的长度。获得确切的缓冲区大小(N)后,我分配长度为N的缓冲区并调用ReadFile从Pipe读取数据。问题:问题是——在单处理器机器上,PeekNamedPipeAPI将缓冲区长度返回为0。因

windows - 将多个文件通过管道传输到一个批处理文件中(使用资源管理器突出显示)

当用户右键单击文件类型时,我已经可以运行一个批处理文件。我怎样才能使每个突出显示的组只运行一个实例并将所有文件作为参数。当前,当用户“shiftclicks”时,它为每个文件运行单个实例很可能有更好的表达方式...您可以明白为什么我在谷歌搜索时遇到了麻烦。谢谢 最佳答案 通常,文件关联多选调用会启动程序的多个实例,程序本身必须自行处理(或借助DDE或IDropTarget)在批处理文件中实现它会非常困难,这个例子应该让你开始:@echooffsetlocalENABLEEXTENSIONSsetguid=e786496d-1b2e-

c++ - 有没有办法检查外部数据是否通过管道传输到程序或程序是否自行运行?

即数据已经由另一个程序提供,或者用户必须手动输入。我指的是这两种状态:dir/b/s*.*|myprogram和myprogram在第二种情况下,程序将等待用户输入。有什么办法可以防止这种情况发生吗? 最佳答案 POSIX有isatty(),而VisualC++有_isatty(),如果文件描述符是终端或命令行,它们都将返回true,例如isatty(fileno(stdin))。 关于c++-有没有办法检查外部数据是否通过管道传输到程序或程序是否自行运行?,我们在StackOverfl

c++ - 管道通信 C++

我正在编写两个必须通信的小型C++应用程序。第一个将是一项服务,每隔一段时间,必须提醒用户注意某事。由于服务无法创建窗口,因此我将应用程序设计为两个独立的可执行文件。该服务将使用通知程序进行通信。该服务只需要向通知程序发送文本消息,通知程序会在系统托盘中显示一个气球。我正在尝试使用命名管道,我想我已经差不多了,但还不够。到目前为止我所拥有的是:在通知方:m_hInPipe=CreateNamedPipe(L"\\\\.\\pipe\\nhsupspipe",PIPE_ACCESS_INBOUND,PIPE_WAIT,1,1024,1024,60,NULL);意思是我创建了一个名为nhs

windows - 如何在 PowerShell 中使用 cmd 类型的管道 (/piping)?

在cmd(和bash)中,管道“|”以第一个命令输出的原始格式(作为字符串)将输出推送到另一个命令。在PowerShell中,从管道出来的所有东西都是对象(即使是字符串也是字符串对象)。因此,某些命令在PowerShell命令窗口而不是Windows命令窗口中运行时会失败。例子:dirc:\windows|gzip>test.gz当此命令在Windows命令提示符窗口中运行时,它可以正常工作-C:\windows的目录列表被压缩到test.gz文件中。PowerShell中的相同命令失败,因为PowerShell不使用cmd样式的管道并将其替换为PowerShell管道(使用文件系统项

c - Windows命名管道问题

我正在编写一个通过命名管道与用户空间应用程序通信的驱动程序。用户态应用程序通过调用CreateNamedPipe()创建命名管道,然后通过调用IOCTL将管道名称传递给驱动程序。然后,驱动程序通过调用ZwCreateFile()打开管道。然后,用户态应用程序进入一个循环,从管道读取请求、处理请求并将结果写回管道,即:while(1){ReadFromPipeProcessRequestWriteToPipe}驱动程序基本上是将请求写入管道,然后直接读回答案:WriteRequestToPipeReadAnswerFromPipe我的问题是,如果ReadAnswerFromPipe在应用

c++ - 使用命名管道的客户端服务器聊天

我已经设法将客户端连接到服务器并在它们之间发送数据,但我似乎无法让它们聊天。条件:-服务器必须打印出对话,以及两个客户端之间的对话。这是我的服务器代码#include#include#include#include#defineBUFSIZE512DWORDWINAPIInstanceThread(LPVOID);VOIDGetAnswerToRequest(LPTSTR,LPTSTR,LPDWORD);int_tmain(VOID){BOOLfConnected=FALSE;DWORDdwThreadId=0;HANDLEhPipe=INVALID_HANDLE_VALUE,hThr

windows - 我可以使用什么来代替 Unix 管道在 Windows 上进行进程间通信?

我有一个启动子进程的应用程序。子进程从标准输入读取要操作的文件。对于某些操作,它需要一个输入文件,其中包含有关如何处理它所操作的文件的信息——我们称之为“控制文件”。控制文件的名称也从标准输入中读取。父应用程序可以使用临时文件作为控制文件,但我更愿意避免使用真正的磁盘备份文件。在Linux上,这很简单:我可以创建一个Unix管道,fork,在启动子进程之前关闭管道的各个端点,然后使用/dev/fd/3(或任何文件描述符)作为控制文件名,然后将控制数据写入父应用程序中的管道。或者,我可以在/tmp(或其他任何内容)中使用命名管道。我怎样才能在Windows上实现类似的功能?Windows

c# - 在windows/.net中创建管道文件

我正在使用一个旧程序生成它的输出到一个文件中。我可以在命令行上指定要使用的文件,但它必须转到一个文件(没有发送到stdout的选项)。我想在输出生成时流式传输(不要等到文件完成)。在*nix中,我会创建一个命名管道,并使用该"file"作为输出。这个(或类似的东西)可以在Windows中完成吗?可以用纯C#或仅用c/c++/pInvoke完成吗?有没有可以跨平台的库? 最佳答案 从您的.Net应用程序,您可以将遗留应用程序生成为Process,您可以为此定义其standardoutputstream。.您可以使用文件流或任何其他类型