Я использую один и тот же код cpp на двух одинаковых компьютерах, но он зависает только на одном компьютере. Я заметил, что он зависает только тогда, когда я добавляю приведенный ниже кодовый вызов в одну из функций. Понятия не имею почему. Я даже переписал код, чтобы попытаться исправить, но безуспешно. Что еще более странно, так это то, что он будет зависать в случайное время / в случайных местах (во время основного или во время разговора и т. Д. c.). Есть идеи, почему?
Я безуспешно пытался искать здесь. Это не архитектура компьютера, и я не верю, что есть утечки памяти, поскольку он отлично работает на другом компьютере (он идентичен, кроме местоположения и IP-адреса)
(Это не мое {и} размещение. I ' m просто по какой-то причине не удалось вставить его как код)
void ntpSync(){
FILE *jitter;
char line[41];
char *start;
jitter = popen("chronyc sources |cat", "r");
fgets(line,41,jitter);
fgets(line,41,jitter);
fgets(line,41,jitter);
fgets(line,41,jitter);
fgets(line,41,jitter);
fgets(line,41,jitter);
fgets(line,41,jitter);
start = strchr(line,'+');
myfile<<start;
pclose(jitter);
}
раньше он был более элегантным и был таким (позже я смотрел на другое значение). В любом случае, оба зависают на одном компьютере, а не на другом.
void ntpSync(){
FILE *fp;
char var[40];
char *nextSys;
char *sysTime;
fp = popen("chronyc tracking |cat", "r");
while (!feof(fp))
{
while(fgets(var,40, fp)!=NULL)
{
if(strncmp(var,"System time",11)==0)
{
nextSys = strtok(var,": ");
while(nextSys != NULL)
{
if(strspn(nextSys,"seconds")==7)
{
myfile<<sysTime<<",";
break;
}
sysTime=nextSys;
nextSys=strtok(NULL,": ");
}
}
}
Может быть, мой хрони на одном компьютере испортился, и мне следует его переустановить? Вызов «chrony c sources» работает на обоих терминалах и заполняет мой csv в моем коде.