我试图为我的代码编写一个日志文件,但是我有一些限制,并且不知道如何超越它们。
我的代码运行了几天,每1分钟循环一次。我想在每个循环的末尾写入日志文件,这样日志文件将有数千行。因此,我对此的两个要点是:
我试过像这样使用搜索功能:
fseek(fp,-1,SEEK_END);但没有成功(我最终写的是已经存在的行)。重要的是,我正在用linux编写这段代码,但希望它是可移植的。
我在这里发现的关于其他问题的所有东西都显示人们阅读了整行,而我不需要阅读或存储现有的行。我只想打开这个文件,写一个新的行。有人知道我是怎么做到的吗?
发布于 2019-05-19 18:37:10
以附加模式打开文件("a"在fopen中)。这样,所有的写操作都会到达文件的末尾;不需要查找。
此外,重复打开/关闭同一个文件是没有意义的。在循环开始之前,只打开一次文件。保持文件打开并不妨碍其他人读取该文件。如果您担心缓冲所造成的延迟,则可以在每一行输出之后对句柄进行fflush()。
https://stackoverflow.com/questions/56210822
复制相似问题