2014年4月11日 星期五

Printf 不能輸出到 console ....

最近工作上發現 , 有使用者的程式使用 printf 來 debug , 不過卻沒有輸出 .
網路上有說使用 fprintf + stdout or stderr 等方式 . 不過在我們的環境下卻沒有辦法 .

最後 , 我使用 暴力方式 解決了 !!

首先 , 先了解 console 是哪個 tty . 然後在 程式內 直接 fopen  tty , 接著用 fprointf 的方式直接寫過去就可以了 !!

雖然這樣的方式不好 , 不過先可以用 , 有時間在研究一下正規方式 .


============================

#define AP_DEBUG_ON

#if defined (AP_DEBUG_ON)

 #define    DEBUG_MSG(S,A...)        fprintf(ttyfd,"==== [%s]:[%d]:" S "\n",__FUNCTION__,__LINE__,## A)

#else

 #define    DEBUG_MSG(S,A...)        do {} while (0)

#endif


FILE *ttyfd ;

int main(int argc, char **argv)

{   
    ttyfd = fopen("/dev/ttyS0", "w");

...................................
DEBUG_MSG("flag:%d -> %d ",flag,flag ? 0 : 1 ); 
}




沒有留言:

張貼留言