2023年7月17日,周二下午
今天在看《TCP/IP网络编程时》,突然有一个问题:明明用printf就可以输出错误信息,为什么还要专门写一个函数error_handling来输出错误信息?
目录
error_handling的函数原型:
error_handling的使用:
明明用printf就可以输出错误信息,为什么还要专门写一个函数error_handling来输出错误信息?
void error_handling(char *message){
fputs(message,stderr);
fputc('\n',stderr);
exit(1)
}
如果发生错误,那么会以类似如下的方式来调用error_handling来输出错误信息
int len=read(sock,message,sizeof(message)-1);
if(len==-1)
error_handling("read() error!");
确实,printf也能完成输出错误信息的功能。但是如果专门写一个处理错误信息的函数,效果会更好,功能会更强大和完善。
error_handling可以把错误信息输出到stderr,而printf只能把错误信息输出到stdout;
error_handling在输出错误信息后,可以马上通过exit(1)终止程序。但是printf却不做到终止程序。