OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4732|回复: 4

if(res==FR_OK&&tfileinfo.lfname!=NULL)中tfileinfo.lfname判断的疑问?

[复制链接]

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2015-10-24
在线时间
26 小时
发表于 2015-11-30 22:41:28 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]u16 pic_get_tnum(u8 *path) { u8 res; u16 rval=0; DIR tdir; //临时目录 FILINFO tfileinfo; //临时文件信息 u8 *fn; res=f_opendir(&tdir,(const TCHAR*)path); //打开目录 tfileinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度 tfileinfo.lfname=mymalloc(tfileinfo.lfsize);//为长文件缓存区分配内存 if(res==FR_OK&&tfileinfo.lfname!=NULL) { while(1)//查询总的有效文件数 { res=f_readdir(&tdir,&tfileinfo); //读取目录下的一个文件 if(res!=FR_OK||tfileinfo.fname[0]==0)break; //错误了/到末尾了,退出 fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname); res=f_typetell(fn); if((res&0XF0)==0X50)//取高四位,看看是不是图片文件 { rval++;//有效文件数增加1 } } } return rval; }[/mw_shl_code]
请教原子哥。这段程序里面为什么要判断tfileinfo.lfname是否为空呢?看了一下这段里面没有对tfileinfo.lfname赋值和操作的地方啊?

最佳答案

查看完整内容[请看2#楼]

在f_readdir会有操作.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-30 22:41:29 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2015-10-24
在线时间
26 小时
 楼主| 发表于 2015-12-1 18:10:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
tfileinfo 没理解错应该是定义在pic_get_tnum内部的一个局部变量啊?
f_readdir怎么会有操作,求科普
回复

使用道具 举报

7

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2015-10-24
在线时间
26 小时
 楼主| 发表于 2015-12-1 20:21:12 | 显示全部楼层
回复【3楼】zqdl8:
---------------------------------
f_readdir是在if判断之后才进行的操作,在f_readdir之前判断tfileinfo.lfname不等于空,是什么用意呢?
回复

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2015-12-1 22:57:05 | 显示全部楼层
很简单的c语言问题。内存动态分配都需要判断是否分配成功
手艺人要内外兼修。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 21:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表