以下是我的代码的一部分,它存在文件处理问题。文件打开正常,但是当我尝试读取或只是关闭文件时,我的程序退出而没有错误。我试图独立运行这个代码,它工作正常。如果有人可以帮助我指出我做错了什么,真的很感激。
int ctrlSend(char *etherPort, uint8_t *inPayload, int payloadLen, int vlanID)
{
char intName [10]; // Interface name from file
int intVlan; // Interface VLAN from file
printf("In ctrlSend\n");
FILE * pFile; // File pointer
pFile = fopen ("vlan.conf","r");
while(!feof(pFile))
{
fscanf(pFile,"%s %d",intName,&intVlan)
printf("In ctrlSend while loop");
}
fclose (pFile);
return 0;
}
UPDATE1:更新了以上代码
UPDATE2:下面的替代代码有相同的问题。
int ctrlSend(char *etherPort, uint8_t *inPayload, int payloadLen, int vlanID)
{
printf("In ctrlSend\n");
char intName [10]; // Interface name from file
int intVlan; // Interface VLAN from file
FILE * pFile; // File pointer
pFile = fopen ("vlan.conf","r");
while (fscanf (pFile,"%s %d",intName,&intVlan) == 2)
{
printf("In ctrlSend while loop");
}
fclose (pFile);
return 0;
}
UPDATE3:好像文件没有打开,看着它。
答案 0 :(得分:2)
执行while (!feof ...)
时,每次检查是否到达文件末尾。但是,您的文件(fread
?)中没有任何进展。这意味着永远不会终止。
答案 1 :(得分:0)
检查文件是否存在。打开文件后,应始终检查文件指针是否为NULL。我认为您的程序无法打开该文件,并且您正在尝试使用文件指针而不检查哪个导致未定义的行为。