2013年1月14日 星期一

perror - 印出系統錯誤訊息


gdb 用不習慣,土炮 printf/cout 搭配用好夥伴;至少不用整天 cout << "fuck" 這樣 XD



[Prerequisite/Synopsis]
#include <stdio.h>
void perror(const char *s);

#include <errno.h>
const char *sys_errlist[];
int sys_nerr;
int errno;

[說明]
有些 standard function 遇到錯誤的時候會自己去設 errno ,include 這兩個 header file 之後就可以把函式設的 errno 直接轉成錯誤訊息輸出,省掉 cout 半天的煩惱。

可以搭配 return value check / assert 使用。

[Example]
n = write(sock,ToNet.c_str(),ToNet.size()+1);
if (n < 0)
{
        perror("ERROR writing to socket:");
        return 1;
}

有 Error 時的 Output:
ERROR writing to socket: <system error message>

[Reference]
man page:
http://www.kernel.org/doc/man-pages/online/pages/man3/perror.3.html

沒有留言:

張貼留言