使用檔案描述符進行輸入,輸出重定向

2021-09-01 03:31:55 字數 895 閱讀 7638

先看輸入重定向,假設我們使用檔案描述符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...