我有一个命令(比如cmd
)。在linux shell中代表性的输出。
output line 1
output line 2
.
.
Checkpoint 1
.
output line 20
output line 21
.
.
Checkpoint 2
Checkpoint 3
Checkpoint 4
.
.
Checkpoint 8
Checkpoint 2
&的出现之间存在相当大的时间差异。 Checkpoint 3
,Checkpoint 3
& Checkpoint 4
等(每个约2秒)。
我使用如下的popen执行相同的命令并解析输出。
FILE *fp;
int status;
char path[65000];
fp = popen("cmd", "r");
if (fp == NULL)
/* Handle error */;
while(1)
{
while (fgets(path, PATH_MAX, fp) != NULL)
{
print("%s\n",path);
if(!strncmp("Checkpoint",path,strlen("Checkpoint"))
printf("Reached : %s ",path);
if(!strncmp("Checkpoint 8",path,strlen("Checkpoint 8"))
break;
}
}
status = pclose(fp);
if (status == -1) {
/* Error reported by pclose() */
} else {
}
但是使用从上面的程序获得的日志(由程序中的打印语句打印),检查点日志几乎同时出现在屏幕上。
所以我看不到Checkpoint 2
和Checkpoint 3
之间大约2秒的时差。 Checkpoint 3
,Checkpoint 4
& cmd
等等,差不多是0.
我真的无法在我的代码片段中看到可能出错的内容,该代码段解析Dice[1]
输出。