![](/img/trans.png)
[英]C++: Linux: Pipe to my program from multiple threads or streams other than `cout`
[英]Linux terminal pipe to my C++ program
我不确定术语,当我用谷歌搜索时,我得到了许多误导性的结果。 我只需要一推就可以了。
如何将我的程序作为Linux终端中管道传输的目标?
说我写了一个C ++程序MyProg
我希望能够做类似的事情
$ ls | ./MyProg
您能否给我一个提示,可以为此使用什么功能/流?
正如您所称,管道在Linux中没什么特别的,这就是为什么找不到管道的原因。
管道的作用是将一个程序的标准输出( stdout
)重定向到另一个程序的标准输入( stdin
)。 因此,只需阅读标准输入,即可在此处找到文本。 如果要使用C ++方式,请使用std::cin
,或者在C模式下使用*scanf()
。
如果您想知道stdin
是指实际的终端还是某种重定向,可以使用isatty(0)
(0是stdin的fd,某个地方有一个常数,但我不记得它的名字了,而每个人都知道stdin是0)。
您应该在应用程序中处理标准输入(stdin) ,输出(stdout)和错误(stderr) 。 它们具有保留的文件描述符编号。 请参考以下链接文件描述符Wiki
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.