【发布时间】:2019-05-29 08:18:33
【问题描述】:
我正在编写一个代码,它将一个文件保存到另一个名称不同的文件中 - 但是,我不确定是否需要关闭这两个文件?
FILE *logfile = fopen("log.txt", "a+");
while(1) {
char filename[500];
char logline[512];
char channel[512];
//Do stuff
sprintf(filename, "%s.log.txt", channel);
freopen(filename, "a+", logfile);
log_to_file(logline, logfile);
}
【问题讨论】:
-
@EUS 我看过了,但我没有在这里使用标准输出或标准输入,它是另一个文件。 (对不起,如果本质上是一样的,我就是不明白)
-
程序结束时,两个文件都会自动关闭,所以不是特别需要,但是值得推荐
-
您可以同时打开多个文件,只要确保在某个时候关闭它们。(如果其他程序试图访问您正在读取/写入的文件,可能会出现问题)如果您%100 确定没有其他人使用这些文件,做任何你想做的事。
-
freopen关闭原始文件,并将给定的FILE指针与新文件相关联。这意味着代码一次只打开一个文件,因此只关闭一个文件。是的,完成文件后关闭文件是一种很好的做法。