相邻的另外一篇文章有更加详细的解释 关键代码就5行
static int process_fopen(meter_t meter, char* iqpath)
{WIN32_FIND_DATA p;
HANDLE h;
static int num = 0;
char path[128];
char iqdata[sizeof(TDOASensorInfo_st) + sizeof(float) * 4096 * 2];
sprintf(path,"%s%s", iqpath, "*");
h=FindFirstFile(path, &p);
// puts(p.cFileName); //指针指的第一个位置并不是文件夹内第一个文件 是 "."(一个点)
while(FindNextFile(h,&p))
{
if(num++ > 0) //第二个也不是 是 ".."(两个点)
{
puts(p.cFileName); //得到文件的名称 并不是文件的绝对路径
sprintf(path,"%s%s", iqpath, p.cFileName); //拼合组成文件的绝对路径
fp = fopen(path, "rb");
if(fp == NULL)
{
printf("无法打开IQ文件");
log_debug(ZONE,"无法打开IQ文件");
}
else
{
fread(iqdata, sizeof(TDOASensorInfo_st) + sizeof(float) * 4096 * 2, 1, fp); //读取文件
_j630_process_iqtest_agilentToKunlei_data(meter, iqdata, path); //对数据操作
}
fclose(fp);
}
}
return 0;
}