昨晚,遇到一个很久才查出来的BUG,在此写下博客,提醒自己写代码一定要细心,往往很多BUG都是很细小的点没有注意到!
例如: FILE *fp = NULL;
fp = fopen("/sys/class/net/usb0/mtu", "r");
if(NULL == fp)
{
sendMsgToMiracast(&msg);
printf("\nMiracastApp Start!!\n");
}
else
{
sendMsgToMirrorlink(&msg);
printf("\nMirrorlinkApp Start!\n");
}
fclose(fp);
fp=NULL;
以上有一个很不起眼的错误,你注意到了么?
如果fp=NULL? 那么fclose还能关掉吗?如果这样写的话,程序就会莫名其妙的跑飞,找都找不到!所以关闭fp之前你得做个判断!
正确的写法:
FILE *fp = NULL;
fp = fopen("/sys/class/net/usb0/mtu", "r");
if(NULL == fp)
{
sendMsgToMiracast(&msg);
printf("\nMiracastApp Start!!\n");
}
else
{
sendMsgToMirrorlink(&msg);
printf("\nMirrorlinkApp Start!\n");
}
if(NULL!=fp)
{fclose(fp);}
fp = NULL;