先看輸入重定向,假設我們使用檔案描述符3進行輸入重定向:
1)把檔案描述符3和標準輸入stdin(檔案描述符為0)關聯起來,執行下面的命令之後,所有鍵盤和滑鼠的輸入都被重定向到檔案描述符3
exec 3<&0
2) 把標準輸入stdin重定向到檔案,執行下面的命令後,所有的輸入都會從$infile中讀取
exec 0< $infile
3)恢復標準輸入,即仍然用檔案描述符0表示標準輸入
exec 0<&3
4)關閉檔案描述符3
exec 3>&-
來看乙個例子:
exec 3<&0
exec 0< $infile
while read line; do
echo $line > $outfile
done
exec 0<&3
exec 3>&-
同樣的,用下面的方法可以把檔案描述符4和標準輸出關聯起來。
1)把檔案描述符4和標準輸出stdout(檔案描述符為1)關聯起來,執行下面的命令之後,所有標準輸出都被重定向到檔案描述符4
exec 3<&1
2) 把標準輸出stdout重定向到檔案,執行下面的命令後,所有的標準輸出都會到$outfile中讀取
exec 1> $outfile
3)恢復標準輸出,即仍然用檔案描述符1表示標準輸出
exec 1<&4
4)關閉檔案描述符4
exec 4>&-
來看乙個例子:
exec 4<&1
exec 1< $outfile
while read line; do
echo $line
done < $infile
exec 1<&4
exec 4>&-
使用檔案描述符
開啟和關閉檔案描述符。include include include include int open const char pathname,int flags int close int fd open試圖開啟引數pathname中的乙個檔案。引數flags指定訪問該檔案的方式。open成功後會...
檔案描述符 輸出重定向
對於核心而言,所有開啟的檔案都是通過檔案描述符引用的。那麼檔案描述符又是什麼呢?通過上圖,我們可以清楚的認識到檔案描述符就是從0開始的小的非負整數,核心用以標識乙個特定程序正在訪問的檔案。當開啟乙個檔案或建立乙個檔案,核心向程序返回乙個檔案描述符。linux程序預設情況下會有三個預設開啟的檔案描述符...
C 學習 通過管道進行cmd程序輸入輸出重定向
在日常的工作中,shell使用比較多,尤其在軟體測試過程中,但使用手工操作既麻煩,又記不住命令,關鍵是不能自動化。眾所周知,linux或者windows系統的shell都是可以進行輸入輸出重定向的,利用輸入輸出重定向技術,把shell的輸入輸出對映到自己所寫的程序裡,這樣就很方面了。比如要使用ssh...