如何解决CPP代码从读取IO中随机冻结
我正在尝试在linux中读取值。我已经从阅读chronyc资料中找到了问题所在,但是我不知道为什么。它还会在随机时间冻结(例如在迭代100、250或11001上冻结),因此其不一致。它只是始终不会完成所有迭代。它也可以在其他但完全相同的计算机上工作,这使事情变得更加奇怪。
从我的代码来看,这并没有冻结:
void writeTime(){
FILE *hour;
FILE *nano;
char line[9];
char nLine[10];
system("date +%R.%S |cat >time.txt");
hour = fopen("time.txt","r");
fgets(line,9,hour);
myfile<<line<<".";
fclose(hour);
system("date +%N |cat >epoch.txt");
nano = fopen("epoch.txt","r");
fgets(nLine,10,nano);
myfile<<nLine<<",";
fclose(nano);
}
但这确实
void ntpSync(){
char ntp[]= <Insert NTP IP Here>;
FILE *jitter;
char line[100];
char *start;
char *i;
system("chronyc sources |cat > offset.txt");
jitter = fopen("offset.txt",100,jitter);
fgets(line,jitter);
i=strstr(line,ntp);
start = strpbrk(line,"+-");
myfile<<start;
fclose(jitter);
}
它们相似并且应该可以工作,但是由于某些原因,writeTime不会冻结。有谁知道为什么或知道为什么吗?任何指导或帮助将不胜感激。
注意:我以前在下面的代码中拥有它,因为它更好了,但是却冻结了
void ntpSync(){
char ntp[]= <insert NTP IP>;
FILE *jitter;
char line[100];
char *start;
char *i;
system("chronyc sources|cat > offset.txt");
jitter = fopen("offset.txt",jitter);
while(!feof(jitter))
{
i=strstr(line,ntp);
if(i!=NULL){
start = strpbrk(line,"+-");
myfile<<start;
}
fgets(line,jitter);
}
fclose(jitter);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com(将#修改为@)