簡體   English   中英

Linux終端管道到我的C ++程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM