gpt4 book ai didi

c - 用C实时写入文件

转载 作者:行者123 更新时间:2023-11-30 15:44:24 26 4
gpt4 key购买 nike

如何将数据实时写入文件?我的意思是:一个程序获取数据并使用 fprintf(...) 命令将它们放入文件(我们可以说 out.txt)中,然后另一个程序读取数据来自文件 (out.txt) 并详细说明它们。

我有这样的流程:

fp=fopen("out.txt","w+");

while(...) {

...

fprintf (fp,"\n %s", data);

}

fclose(fp);

通过该流程,我在关闭文件后将数据获取到文件 (out.txt)。

有没有办法将数据实时写入文件?

最佳答案

我怀疑当您说实时时,您的意思是同时。同时访问访问文件需要打开共享文件。这可能是管道或其他一些进程间沟通。根据要求,它也可能是磁盘上的一个简单文件。 Windows 允许打开通过 _fsopen 共享文件.

#include <share.h> // required for manifest constants for shflag parameter.

fp = _fsopen("out.txt","w+",_SH_DENYWR); // e.g. _SH_DENYWR denies write access
.
while(...) {
.
.

另一个进程可以在文件打开时读取该文件;无需提前关闭文件。其他进程甚至可能会写入(使用shflag = _SH_DENYNO)。然而,从不同的进程同时写入和读取需要更多的编码工作。

   .
fprintf (fp,"%s\n", data); // you may want to have the /n "new line" after writing the data
.

并非所有写入的内容总是立即写入文件(物理地)。因此需要强制将fprintf之后的内容写入文件。

   .
fflush(fp); // force writing to device
.
}

关于c - 用C实时写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482445/

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