while(1)循环无法进行??

qq_17635085 2018-05-24 09:25:13
用的是LINUX GCC编译器,
其中有一个WHILE1循环的内容是这样的:
循环的从从一个文件中读取一个IP地址,然后执行若干的操作,WHILE(1)的代码如下:
while(1)
{
sprintf(fname,"%s%s",PATH, SYSTEM_CONFIG_FILE);
fp=fopen(fname,"rb");
if(fp)
{
if(fread(&sc, sizeof(SYSTEM_CONFIG), 1, fp)!=1)
{
printf("Read file %s%s failed!\n", PATH, SYSTEM_CONFIG_FILE);
fclose(fp);
return(3);
}
else{
set2=sc.host_ip;
printf("host_ip=%s \n ",set2);
fclose(fp);
}

}
else
{
printf("Open file %s%s failed!\n", PATH, SYSTEM_CONFIG_FILE);
return(2);
}

set1=strcat(set1,set2);
printf("set1:%s \n",set1);
system(set1);
usleep(1000000);
}
问题来了:程序执行到标红的这个地方不动了,一直停在那里,没有往下进行,没有进行循环,也没有跳出循环。看了几遍代码都没发现毛病。
是不是WHILE(1)嵌套IF语句有什么讲究呢?有没有大神来讲解一下啊!!!
...全文
1099 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天外怪魔 2018-05-25
  • 打赏
  • 举报
回复
没看到标红的地方。
自信男孩 2018-05-25
  • 打赏
  • 举报
回复
标红的的地方是哪儿?你的代码没有标注红色的地方。
while(1)
{
    sprintf(fname,"%s%s",PATH, SYSTEM_CONFIG_FILE);
    fp = fopen(fname, "rb");
    if(fp)
    {
        if(fread(&sc, sizeof(SYSTEM_CONFIG), 1, fp)!=1) {
            printf("Read file %s%s failed!\n", PATH, SYSTEM_CONFIG_FILE);
            fclose(fp);
            return(3);
        }
        else {
            set2=sc.host_ip;
            printf("host_ip=%s \n ",set2);
            fclose(fp);
        }

    }
    else
    {
        printf("Open file %s%s failed!\n", PATH, SYSTEM_CONFIG_FILE);
        return(2);
    }

    set1=strcat(set1,set2);
    printf("set1:%s \n",set1);
    system(set1);
    usleep(1000000);
}
热血打工人 2018-05-24
  • 打赏
  • 举报
回复
fclose(fp); fopen没有对应

69,336

社区成员

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

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