草庐IT

管道化

全部标签

java - ProcessBuilder 的管道输出到另一个 ProcessBuilder

是否可以将ProcessBuilder创建的一个进程的输出传递给另一个ProcessBuilder创建的另一个进程?例如,如果我尝试执行此shell命令:ls|grepbuild.xml我应该如何使用ProcessBuilder来实现?正如@erdinc所建议的,我试过这个:Processprocess=Runtime.getRuntime().exec("ls");InputStreamis=process.getInputStream();byte[]buf=newbyte[1000];is.read(buf);Stringparameter=newString(buf);Syst

Java NIO 管道与阻塞队列

我刚刚发现它有一个NIO工具,即JavaNIOPipe,它专为在线程之间传递数据而设计。与通过队列传递更传统的消息(例如ArrayBlockingQueue)相比,使用此机制是否有任何优势? 最佳答案 通常,传递数据供另一个线程处理的最简单方法是使用ExecutorService。这包装了一个队列和一个线程池(可以有一个线程)当你有一个支持NIOchannel的库时,你可以使用管道。如果您想在线程之间传递数据的ByteBuffers,它也很有用。否则使用ArrayBlockingQueue通常更简单/更快。如果您想要一种更快的方式在

Swift Combine 合并多个管道以更新 UI 元素 从入门到精通十七

Combine系列SwiftCombine从入门到精通一SwiftCombine发布者订阅者操作者从入门到精通二SwiftCombine管道从入门到精通三SwiftCombine发布者publisher的生命周期从入门到精通四SwiftCombine操作符operations和Subjects发布者的生命周期从入门到精通五SwiftCombine订阅者Subscriber的生命周期从入门到精通六Swift使用Combine进行开发从入门到精通七Swift使用Combine管道和线程进行开发从入门到精通八SwiftCombine使用sink,assign创建一个订阅者从入门到精通九SwiftCo

iis-7 - 在 IIS7 中重定向到 www - 经典管道模式

我想在IIS7网络服务器上实现重定向。基本上,如果URL中不包含子域,我将重定向到www子域。http://mysite.com/file.aspx重定向到http://www.mysite.com/file.aspxhttp://mysite.com/image.jpg重定向到http://www.mysite.com/image.jpghttp://mysite.com/text.html重定向到http://www.mysite.com/text.html如何做到这一点?我不想编写任何HTTP模块——它只能通过IIS配置完成。此外,我需要使用经典管道模式并且不能安装任何ISAPI

html - 辅助功能和 HTML 标题标签分隔符 - 垂直线(管道)的替代品

我正在尝试使网站对屏幕阅读器更友好一点,在测试中我注意到屏幕阅读器上的一个常见模式非常烦人-该网站在标记中使用垂直线/竖线字符作为分隔符(例如PageName|SiteName)。当我使用VoiceOver作为屏幕阅读器进行测试时,它被读取为“页面名称垂直线站点名称”,这与站点的特定标题听起来特别奇怪。管道的最佳替代品是什么,同时对SEO没有负面影响?我已经尝试了PageName-SiteName和PageName·SiteName,它们工作正常,但我担心它们可能在某些边缘情况下有问题(例如读作“破折号”或“&符号midot分号”)或导致SEO困惑。是否有公认的最佳实践?

c++ - ifstream 管道和多个(顺序)编写器

我正在使用std::ifstream从Linux上的命名管道读取数据。如果文件的写入端关闭,我将无法继续通过流从管道读取。出于某种原因,我必须再次clear()、close()和open()流才能继续阅读。这是预期的吗?当编写者随意close()和open()管道时,如何避免管道上的close()open()?背景:我相信我必须做的close()open()会导致作者有时收到我想避免的SIGPIPE。更多细节——我正在使用这段代码来读取流//readsinglelinestream_("/tmp/delme",std::ios::in|std::ios::binary);std::ge

c++ - 如何在此代码 C++ 中使用管道?

我遇到了大麻烦,因为我不知道该怎么做。我只需要创建2个可以通信的进程。这是代码:/*Wrappers*/this->sock_fd=this->w_socket();this->w_bind();this->w_listen();std::coutw_accept(&client_addr);charclient_ip[64];intclient_port=ntohs(client_addr.sin_port);inet_ntop(AF_INET,&client_addr.sin_addr,client_ip,sizeof(client_ip));std::coutsock_fd);t

在GitLab管道中安装私人NPM软件包

如果需要使用NPM安装私人存储库环境变量NPM_TOKEN需要设置。NPM_TOKEN=00000000-0000-0000-0000-000000000000我在Gitlab管道中的构建阶段需要安装私人存储库。所以我把这个NPM_TOKEN我的gitlab中的秘密变量pipeline设置。我当前的gitlab-ci配置:image:x/nodebuild_job:script:-printenvNPM_TOKEN-npmi@x/testDocker图像是我制作的.npmrc文件:FROMnode:latestCOPY.npmrc.我在哪里.npmrc在同一目录中://registry.npm

c++ - Boost.Asio - 轮询命名管道

我正在尝试监听命名管道上的输入。我正在使用Boost.Asio的stream_descriptor和async_read在Linux下。问题是,对io_service::run()的调用只会像我希望的那样阻塞,直到第一次读取。在那之后,它只是继续立即调用处理程序并出现“文件结束”错误,即使我尝试向它附加更多async_reads。我的代码等同于以下内容:boost::asio::io_serviceio_service;intfifo_d=open("/tmp/fifo",O_RDONLY);boost::asio::posix::stream_descriptorfifo(io_se

c++ - C++ 中的 PeekMessage 函数和命名管道

关于:PeekMessage(&msg,NULL,0,0,PM_REMOVE)IfhWndisNULL,PeekMessageretrievesmessagesforanywindowthatbelongstothecurrentthread,andanymessagesonthecurrentthread'smessagequeuewhosehwndvalueisNULL(seetheMSGstructure).ThereforeifhWndisNULL,bothwindowmessagesandthreadmessagesareprocessed.通过命名管道接收的消息是否包含在窗