我有一个看起来像这样的程序。我需要不断地在文本文件中写入内容,但我无法预先确定程序何时结束。所以我强行退出该计划。
FILE *f = fopen("text.txt", "w");
while (1) {
fprintf(f, "something");
sleep(1000);
}
问题是文本文件是空的。谁能给我一些建议? 我正在使用XCode来完成这项工作。
答案 0 :(得分:3)
在fflush(f)
之后使用fprintf(f)
否则您打印的数据仍然在stdio的流缓冲区中,但尚未到达文件系统。
请注意,经常这样做可能会大大降低您的表现。
答案 1 :(得分:0)
写入文件的另一种方法是使用追加模式并在不需要时关闭文件。
while (1) {
FILE *f = fopen("text.txt", "a");
if (f != NULL) {
fprintf(f, "something");
fclose(f);
}
sleep(1000);
}
在您的情况下,如果您在睡眠阶段'强制退出',则此时不会打开该文件。