程式設計中應該使用中定義的stdin_fileno、stdout_fineno、stderr_fileno 三個巨集來表示0,1,2.在程式中可以使用close來關閉stdout_fineno(標準輸出),然後再使用open系統呼叫開啟裝置或者檔案,則其對應的檔案描述符則為1,此時系統就會將其作為標準輸出。
使用putty或者別的工具開啟兩個終端。在其中的乙個終端中輸入tty。
在使用open函式或別的函式時候不知道使用什麼標頭檔案時候可以使用man 2 open (man 2 表示檢視系統呼叫,man 3 fopen 其中man 3 表示檢視普通c語言庫函式)。
/*
* file_descriptor.c
* * created on: 2015-1-20
* author: hsc
*/#include #include #include#include #include #include #include#includeint main(void)
printf("fd:%d\n",fd);
while(1)
return exit_success;
}
makefile檔案
.suffixes:.c .o
cc = gcc
srcs = file_descriptor.c
objs = $(srcs:.c=.o)
exec = file_descriptor
start:$(objs)
$(cc) -g -o $(exec) $(objs)
.c.o:
$(cc) -wall -g -o $@ -c $<
clean:
rm -f $(objs)
編譯並執行程式!
這裡使用printf("")其結果輸出到別的終端上去了,這裡主要因我們關閉了標準輸出,然後再開啟的時候系統乙個終端時候,其檔案描述符為1,系統把檔案描述符為1 的作為標準描述檔案。
linux下檔案描述符的介紹
當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式 scanf 使用 stdin,而函式 pri...
linux下檔案描述符的介紹
當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式scanf 使用 stdin,而函式 prin...
linux下檔案描述符的介紹
當某個程式開啟檔案時,作業系統返回相應的檔案描述符,程式為了處理該檔案必須引用此描述符。所謂的檔案描述符是乙個低階的正整數。最前面的三個檔案描述符 0,1,2 分別與標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 對應。因此,函式scanf 使用 stdin,而函式 prin...