使用fopen错误关闭文件问题
2013-10-31 08:51
246 查看
昨晚,遇到一个很久才查出来的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;
例如: 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;
相关文章推荐
- 循序渐进linux 第十四章 linux系统进程管理(完善中)
- OpenCV中的Mat, cvMat, IplImage
- UVa:10801 Lift Hopping (Bellmanford求最短路)
- linux 的开机启动脚本顺序
- linux中文显示乱码的解决办法
- Linux设置显示器分辨率与刷新率
- ”小糊涂“与美女网站的收费机制
- 淘宝开源其系统监控工具Tsar
- 利用shell脚本来批量修改文件名
- 外文网站
- Linux系统Load average负载详细解释
- Linux 内核中软中断机制
- linux 系统使用/管理之-----64位装ubuntu win7双系统
- hadoop 伪分布模式的配置
- shell——tr的用法
- urllib urlopen()对象方法/代理的补充说明
- 读取配置文件
- centos5.5 中php升级到5.3
- tomcat日志记录
- 基于s5pv210嵌入式linux系统sqlite3数据库移植