gpt4 book ai didi

c - 写入文件时是否需要调用 fclose()

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

假设我正在写入文件,但我想通过关闭机器电源来结束写入,这会是 fclose() 函数没有被调用的问题吗?

FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}

/* print some text */
while(1){
//write something...
}
//Dont want to call this
fclose(f);

最佳答案

简短的回答:不,如果有任何类型的缓冲,则不会像所写的那样。如果没有缓冲,也可能没有。

缓冲模式可以通过 setvbuf 控制。您也可以定期调用fflush刷新缓冲区。

但是,无论您如何管理缓冲,控制权都会转移到操作系统内核 I/O 调度,然后转移到硬件(可能有自己的缓冲)。

<stdio.h> 中的文件 I/O 例程据我所知,不要给您足够低的控制级别来绝对确定您的数据在从诸如fflush这样的调用返回时被写入。 .

请注意,我在这里谈论的是突然意外断电。

关于c - 写入文件时是否需要调用 fclose(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47560766/

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