![](/img/trans.png)
[英]Redirecting output of a C program as input of another program in Linux command shell
[英]Redirecting file contents into another program in C
做一個基本的外殼,我需要處理文件重定向。 具體來說,我很困惑如何將數據從文件中輸入到諸如sort
的程序中。
命令行上的內容如下所示:
$ sort < test.txt
如何在用C制作的自己的迷你外殼中實現這種功能?
我認為可能是從stdin
讀取sort
,但是由於只讀的原因,我想我無法真正將文件的內容寫入stdin
,所以我想知道如何將這些數據實際轉換為諸如sort
東西? 我當前正在使用forks,然后使用execvp()
執行程序。
您需要使用freopen
。
它的工作方式與fopen
類似。 第一個參數是文件名,第二個參數是模式,第三個參數是要重定向的文件指針。 返回值是新文件指針。 因此,如果要重定向標准輸入:
FILE *fp = freopen("input.txt", "r", stdin);
失敗時返回NULL指針,就像fopen
一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.