1. 程式人生 > >Linux初學實戰之重定向標準 I/O 流

Linux初學實戰之重定向標準 I/O 流

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的值。