发生错误时,我希望我的C代码在退出程序之前存储错误。建议将stderr
存储到文件(例如/home/logs.txt),还是建议使用其他方法保存日志/错误报告(考虑编程环境为Linux
)。例如,下面的代码,我怎么能适用于/home/log.txt
或/home/log
在C编程中存储日志/错误消息
FILE *fp1;
fp1 = fopen("/sys/class/gpio/export","w");
if(fp1 == NULL){
fprintf(stderr, "errno:%s - opening GPIO136 failed - line 739\n ", strerror(errno));
close(fp1);
exit(1);
}
谢谢存储日志/错误消息的方法。
对'close()'的调用是错误的,因为它是为文件描述符而不是文件句柄。当你传递一个指向预期整数的指针时,你应该在这里感受到编译器的警告/错误。然而调用'fclose()'将会是多余的,因为文件没有被打开,这是由'fp1'表示'NULL'。 – alk 2013-04-20 08:59:30
谢谢alk,我会修复它在我的代码 – sven 2013-04-20 13:01:56