嵌入式裝置可能有無法實時檢視除錯列印資訊的時候,可通過將其輸出重定向到檔案中,便於後面讀取該檔案檢視列印資訊。可通過dup函式實現,下面是簡單的實現**,再做些簡單說明。
int main(void)
umask(old_mask);
stdout_sfd = dup(stdout_fileno);
stdout_nfd = dup2(file_fd, stdout_fileno);
if ((stdout_nfd < 0) || (stdout_sfd < 0))
printf("write in note.\n") ;
dprintf(stdout_sfd, "write in stdout\n");
return
0;}
1、此處open函式第三個引數不要寫錯了,直接寫成777,那表示10進製,有效的只有對應二進位制資料的最後9位;需要在前面加兩個0表示其是八進位制資料,或者使用相應的巨集實現,具體可man chmod檢視
2、umask函式用來設定限制新檔案許可權的掩碼,會從建立檔案的許可權中去掉相應的位
dup函式用於複製標準輸出描述符到stdout_sfd,此時兩個描述符引用的是同乙個開啟檔案。
dup2函式將file_fd對應開啟的檔案用stdout_fileno描述符表示
printf函式預設往stdout_fileno描述檔案輸出內容,此時便會將內容寫入到note.txt檔案當中,如仍要往螢幕顯示資訊,可通過dprintf指定對應的檔案描述符進行輸出列印
重定向程式設計 dup和dup2函式
輸入重定向 關閉標準輸入裝置,開啟 或複製 某普通檔案,使其檔案描述符為0.輸出重定向 關閉標準輸出裝置,開啟 或複製 某普通檔案,使其檔案描述符為1.錯誤輸出重定向 關閉標準錯誤輸入裝置,開啟 或複製 某普通檔案,使其檔案描述符為2.1.dup函式 返回值 如成功則返回新的檔案描述符,否則出錯返回...
檔案重定向dup2函式
dup和dup2都可用來複製乙個現存的檔案描述符,使兩個檔案描述符指向同乙個file結構體。如果 兩個檔案描述符指向同乙個file結構體,file status flag和讀寫位置只儲存乙份在file結構體中,並且file結構體的引用計數是2。如果兩次open同一檔案得到兩個檔案描述符,則每個描述符...
日誌 重定向
python 將終端 terminal 或者控制台的輸出結果輸出至 log 檔案 以檔案形式儲存 重定義 logger 類,然後 sys.stdout logger log檔名及路徑 import sys class logger object def init self,logfile defau...