Linux初學實戰之重定向標準 I/O 流
阿新 • • 發佈:2019-01-31
Linux shell 使用 3 種標準的 I/O 流,每種流都與一個檔案描述符相關聯:1,stdout 是標準輸出流,它顯示來自命令的輸出。它的檔案描述符為 1。
2,stderr 是標準錯誤流,它顯示來自命令的錯誤輸出。它的檔案描述符為 2。
3,stdin 是標準輸入流,它為命令提供輸入。它的檔案描述符為 0。
學習中遇到方便的命令:
在vim 編輯時,命令列輸入:sp source.c 開啟多 vim 視窗
new a c file多視窗, shift + w + 上下箭頭換多視窗vim,
:set nu 開啟行號
dd 刪除一行
行數+dd 剪切當前位置的數行內容,p 貼上
:wqa 保持,退出,所有
輸出重定向: “>>和>”,1 >>stdout.txt 輸出追加到a.txt;1>stdout.txt
輸出到stdout.txt覆蓋原有內容,
輸入重定向:“<
例子:
main.c
編譯#include <stdio.h> int main() { int price; fprintf(stdout,"Please input a price value:"); scanf("%d",&price); if(price == 0) { fprintf(stderr,"Price cannot equal to zero!\n"); return 1; }else { fprintf(stdout,"The price value is normal.\n"); return 0; } }
gcc main.c -o main.out
執行: ./main.out 1>stdout.txt 2>stderr.txt
輸入不同值檢視後檢視stdout.txt和stderr.txt的值。