gpt4 book ai didi

c - 在C中,如何根据文件内容退出循环

转载 作者:行者123 更新时间:2023-11-30 16:03:41 25 4
gpt4 key购买 nike

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

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

当我想退出时。我在第一个字节中放了一个,但似乎我的文件再也没有被读取过。

While 循环语句和变量定义每个循环如下所示:

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

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

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

最佳答案

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

正如戴夫·贾维斯(Dave Jarvis)提到的,还有许多其他替代方案可以与另一个线程同步。例如,如果您使用 pthreads、pthread_cond_signal 和 pthread_cond_wait。

关于c - 在C中,如何根据文件内容退出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com