隐藏bug
帮忙看下这段代码:
功能:在指定的目录中,查找匹配的文件。如果找到该文件则返回true,否则返回false
参数:dirName:指定的目录
confName:指定的文件名
函数体如下:
bool find_eop_card_conf_file(char *dirName,char *confName)
{
DIR *dir_p;
struct dirent *dirent_p;
dir_p = opendir(dirName);
while((dirent_p=readdir(dir_p))!=NULL)
{
if(0!=strstr(dirent_p->d_name,confName))
{
closedir(dir_p);
return true;
}
}
closedir(dir_p);
}
问题:在大量的测试中发现,有时候这个函数会找错。比如某个文件A其实不存在,确误查为存在。环境:比如这个文件下下存在slot_01_a.conf slot_02_a.conf. 但是查找slot_03_a.conf有时候会说存在。这种概率很小,但是有时候确实会出现。
但是代码我真的看不出来什么问题。求救。