【发布时间】:2013-04-13 12:38:57
【问题描述】:
当发生错误时,我希望我的 C 代码在退出程序之前存储错误。是否建议将stderr 存储到文件中(例如,/home/logs.txt),还是建议使用不同的方法来保存日志/错误报告(考虑到编程环境是Linux)。例如,对于下面的代码,我如何应用该方法将日志/错误消息存储在 /home/log.txt 或 /home/log
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。 -
谢谢你,我会在我的代码上修复它
标签: c linux error-handling posix stderr