char strSrcFile[STR_NOR]; char strDesFile[STR_NOR]; sprintf( strSrcFile, "%s/fa_cond.txt", g_strCurrentDirPath ); sprintf( strDesFile, "%s/fa_cond_%02d.txt", g_strCurrentDirPath, g_uSiteNo ); mUTL_CopySiteReplicationFile( strSrcFile, strDesFile ); FILE *fp; char strRdBuff[STR_NOR]; USlider uFuncNo, uSelNo; USlider uFindFuncNo = 0; fp = fopen( strDesFile, "r" ); if( fp != NULL ) { while(fgets( strRdBuff, sizeof(strRdBuff), fp ) != NULL) { if(strRdBuff[0] != '#') { mUTL_Read_Split_Space(strRdBuff); uFuncNo = atoi(g_strzLineSplitValue[0]); if(uFuncNo == 30){ uSelNo = atoi(g_strzLineSplitValue[1]); mSUM_PrintLog("# CNF Change Number = %d\n", uSelNo); uFindFuncNo++; break; } } } fclose(fp); if( uFindFuncNo == 0 ){ sprintf(g_strErrMsg,"MainFlow_FA_31_CAM_CNF_Change :: CNF Change Number is not defined." ); mATE_TestError( g_strErrMsg ); } uCNFChangeNo = uSelNo; }
时间: 2024-02-14 22:30:55 浏览: 25
这段代码是一个C语言程序段,它的作用是打开一个文件,读取其中的内容,并根据特定的条件进行处理。
首先,定义了两个字符串数组strSrcFile和strDesFile,用于存储文件路径。然后,使用sprintf函数将文件路径格式化到这两个数组中。
接下来,定义了一个文件指针fp以及一个字符数组strRdBuff,用于存储读取的文件内容。还定义了三个整型变量uFuncNo、uSelNo和uFindFuncNo。
然后,使用fopen函数打开strDesFile指定的文件,并进行判断,如果文件打开成功,则进入循环。在循环中,使用fgets函数逐行读取文件内容到strRdBuff中。
如果读取的行不以'#'开头,则调用mUTL_Read_Split_Space函数对strRdBuff进行处理,并将处理结果保存在全局变量g_strzLineSplitValue数组中。然后,将g_strzLineSplitValue数组中的第一个元素转换为整型并赋值给uFuncNo变量。
如果uFuncNo等于30,则将g_strzLineSplitValue数组中的第二个元素转换为整型并赋值给uSelNo变量。然后,调用mSUM_PrintLog函数打印日志信息,并将uSelNo赋值给uCNFChangeNo变量。同时,将uFindFuncNo加1,并使用break语句跳出循环。
最后,关闭文件指针fp,并根据uFindFuncNo的值进行判断。如果uFindFuncNo等于0,则使用sprintf函数将错误信息格式化到g_strErrMsg数组中,并调用mATE_TestError函数处理错误。否则,程序继续执行。
这段代码的功能是读取一个文件,查找文件中以30开头的行,提取对应的数字并将其赋值给uSelNo变量。如果找不到满足条件的行,则会输出错误信息。