在C中,如何基于文件内容退出循环

时间:2010-09-29 18:13:25

标签: c database file

我正在尝试根据文件内容退出while循环。文件存在且为空,或在程序初始化时填充垃圾。我在外部修改文件,并希望循环在发生这种情况时根据文件的修改方式退出。

目前,我启动了一些线程,打开我正在阅读的文件。检查第一个字节。如果它是一个,我退出,否则启动循环。

当我想退出时。我在第一个字节中放了一个,但看起来我的文件永远不会再读了。

while循环语句和变量定义每个循环看起来像:

 while(strcmp(fileContents, "1\n") != 0){

    lengthRead = fread(fileContents, 1, size, isRecording);
    fseek(isRecording, 0, SEEK_SET);

我知道外部退出while循环可能有更简单的方法,但基于我的项目架构,我能看到如何控制它的唯一方法是根据文件内容退出。

1 个答案:

答案 0 :(得分:1)

如果您的其他线程使用fwrite()写入文件,请不要忘记调用fflush()将更改实际写入文件(否则,它们可以保留在内存中缓冲)。< / p>

正如Dave Jarvis所说,还有许多其他选择与另一个线程同步。例如,如果您正在使用pthreads,pthread_cond_signal和pthread_cond_wait。