Ads 468x60px

##EasyReadMore##

26 7月, 2016

除錯、錯誤訊息列印補完


在程式中加入
fprintf(stderr,"billy[%s:%d,%s] Error!! %s\n", __FILE__, __LINE__, __FUNCTION__,strerror(errno));


說明:

errno : 錯誤碼,需搭配 errno.h 使用
strerror(errno) 取代了 perror 不能輸出至檔案的問題
__FILE__, __LINE__, __FUNCTION__ : 宏變數,依序為 檔案名稱、第幾行、函數名稱

範例一:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <errno.h>  

int main(int ac, char **av)
{
 FILE *op;
 
 op = fopen("/home/billy/text.txt","r");
 if(op == NULL){
//  perror("open");
  
  fprintf(stderr,"billy[%s:%d,%s] Error!! %s\n", __FILE__, __LINE__, __FUNCTION__,strerror(errno));
  return;
 }
 fclose(op);
        return 0;
}

結果:

billy[test.c:13,main] Error!! No such file or directory


範例二:
#define printf0(message) \
    printf(" %s %d %s", __FILE__, __LINE__, message);

printf0("I'm a message\n");

所有該有的 debug 訊息都有了

參考:

Linux/Unix C编程之的perror函数,strerror函数,errno --zz - 软件开发程序员博客文章收藏网 - http://goo.gl/pdpkOs

0 意見:

張貼留言

 
Blogger Templates