pScanInfo->last_file_path3的内容为什么有时显示不正常

huabinsir 2014-01-21 05:54:33
在一个小系统的嵌入式平台上, pScanInfo->last_file_path3的内容为什么有时显示不正常?
是小系统的问题吗?

__bool ScanGetLastFile(HSCAN hScan, eBookScanedEntry_t* return_enter1,eBookScanedEntry_t* return_enter2,eBookScanedEntry_t* return_enter3, __s32 *nNandFileCount)
{
eBookScanInfo_t *pScanInfo;

if(hScan == NULL || return_enter1== NULL || return_enter2 == NULL || return_enter3== NULL)
{
//eLIBs_printf("..%s..%d.....\n", __FILE__, __LINE__);
return EPDK_FALSE;
}

pScanInfo = (eBookScanInfo_t*)hScan;
if(pScanInfo->CurCnt == 0)
{
return EPDK_FALSE;
}

*nNandFileCount = pScanInfo->CurCnt;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常


if (pScanInfo->CurCnt==1)
{
return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = NULL;
return_enter2->Path = NULL;
return_enter3->CtearTime = NULL;
return_enter3->Path = NULL;
}

if (pScanInfo->CurCnt==2)
{
return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = pScanInfo->last_file_CreateTime2;
return_enter2->Path = pScanInfo->last_file_path2;
return_enter3->CtearTime = NULL;
return_enter3->Path = NULL;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常

}

if (pScanInfo->CurCnt>=3)
{
eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__,
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2 内容显示正常

//pScanInfo->last_file_path3 内容显示不对正常


return_enter1->CtearTime = pScanInfo->last_file_CreateTime1;
return_enter1->Path = pScanInfo->last_file_path1;
return_enter2->CtearTime = pScanInfo->last_file_CreateTime2;
return_enter2->Path = pScanInfo->last_file_path2;
return_enter3->CtearTime = pScanInfo->last_file_CreateTime3;
return_enter3->Path = pScanInfo->last_file_path3;
}



return EPDK_TRUE;
}
...全文
99 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huabinsir 2014-01-23
  • 打赏
  • 举报
回复
奇怪, eLIBs_printf 在其它界面的输出信息是正确的. 个人认为:是不是嵌入式小系统 堆或栈方面分配内存有问题.
vipcxj 2014-01-23
  • 打赏
  • 举报
回复

*nNandFileCount = pScanInfo->CurCnt;

eLIBs_printf("..%s..%d...pScanInfo->CurCnt=%d...path = %s;...path = %s;...path = %s;\n\n", __FILE__, __LINE__, 
pScanInfo->CurCnt, pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3);
//pScanInfo->last_file_path1, pScanInfo->last_file_path2, pScanInfo->last_file_path3 内容显示正常

上面的注释里,你声称程序到这里为止一直是正常的,那么后面如果出现不正常,妥妥是因为eLIBs_printf的问题,除非你上面的注释里是胡扯的。
huabinsir 2014-01-22
  • 打赏
  • 举报
回复
引用 1 楼 vipcxj 的回复:
有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?
有时能正确的显示出内容, 有时显示出来的是乱。 这是什么原因呢?
huabinsir 2014-01-22
  • 打赏
  • 举报
回复
eLIBs_printf 是小系统的自带的函数. 第一次显示正常,后来大多数不正常(有时是正常的).
vipcxj 2014-01-22
  • 打赏
  • 举报
回复
eLIBs_printf 还有这东西是不是有问题,因为照你的说法,乱之前最近的那一次正常,就发生在这个函数里,而这个函数和后面发生乱码的情况之间根本就没隔其他语句,那唯一可能出问题的地方就妥妥是它了,何况这东西明显不是系统函数,是你们自己写的,出错也很正常~
vipcxj 2014-01-22
  • 打赏
  • 举报
回复
引用 2 楼 huabinsir 的回复:
[quote=引用 1 楼 vipcxj 的回复:] 有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?
有时能正确的显示出内容, 有时显示出来的是乱。 这是什么原因呢?[/quote] 怎么个乱发,举个例子嘛,是部分乱,还是全部乱~
vipcxj 2014-01-21
  • 打赏
  • 举报
回复
有时是啥时候呢? 难道是当且仅当CurCnt >= 3的时候? 不正常又是怎么个不正常,正常又是怎么个正常呢?

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧