fputc函式重寫實現printf重定向

2021-10-09 08:14:25 字數 649 閱讀 3044

一,printf重定向原理

1,自己重寫c的庫函式

鏈結器檢查到使用者編寫了與c庫函式相同名字的函式時,優先呼叫使用者編寫函式,這樣就可實現重定向

2,重定向printf()函式

需重寫fputc()這個c標準庫函式(printf()在c標準庫函式實質是乙個巨集,實際是呼叫fputc()函式)

說明fputc()預設是把字元輸出到偵錯程式控制視窗,要把資料通過usart輸出到串列埠助手,需對基於fputc()的printf()系列函式

的輸出都重定向到usart埠上去,要想使用usart功能,需重定向fputc()函式

二,操作步驟

1,在工程檔案中實現fputc

///重定向c庫函式printf到串列埠,重定向後可使用printf函式

int fputc(int ch, file *f)

///重定向c庫函式scanf到串列埠,重寫向後可使用scanf、getchar等函式

int fgetc(file *f)

{ /* 等待串列埠輸入資料 */

while (usart_getflagstatus(usart3, usart_flag_rxne) == reset);

return (int)usart_receive

使用url重寫實現Session跟蹤

使用url重寫實現session跟蹤 這是在瀏覽器不支援cookie的情況下,servlet引入的一種補充的會話機制。當使用者發出下一次請求時,如果請求訊息中沒有包含cookie頭字 段,servlet引擎則認為客戶端不支援cookie,他將依據請求url引數中的會話標識號來實施會話跟蹤。這種方式要...

C 中方法的重寫(實現多型)

問題1 什麼時候要重寫方法?當子類繼承父類時,子類中方法名稱與父類中方法名稱重名時,需要對父類的方法使用virtual變成虛方法 使用關鍵字override重寫子類方法。問題2 什麼是重寫?重寫 父類方法就是修改它的實現方式或者說在子類中對它進行重新編寫。練習 static void main st...

yii2 0中url重寫實現方法

在yii框架裡有前台和後台頁面,舉例前台url重寫。控制器以controller作為字尾,繼承自yii web controller 動作以action作為字首,public訪問修飾 控制器id 類名去字尾,全部轉為小寫,如果是駝峰命名多個單詞轉為中槓分割 動作id 去字首,全部轉為小寫,如果是駝峰...