Linux 下檔案描述符(二)

2021-06-28 10:19:04 字數 1157 閱讀 2918

程式設計中應該使用中定義的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...