【发布时间】:2014-06-07 22:32:51
【问题描述】:
我在写入文件时遇到了一些问题,同时在 while 循环中也有延迟。这是一个sn-p:
void main(int){
FILE * fp = NULL;
sprintf(filename, "log%i.msg", SET_ID);
fp = fopen(filename, "w+");
fprintf(fp, "File started\n");
while(1){
fprintf(fp, "%i %u %s\n", someInt, someUnsigned, someString);
fflush(stdout);
sleep(5); // Commenting out this line will work
}
fclose(fp);
return 1;
}
运行代码会给我一个 0 字节的输出文件,在睡眠生效时其中没有任何内容,尽管当我的代码完成运行时该文件确实具有预期的内容。但是,当我删除 sleep(5); 行时,它确实可以正确打印。我已经对此进行了搜索,但我发现它需要刷新,但我这样做了(尽管显然不正确)。我做错了什么?
【问题讨论】: