【发布时间】:2013-03-14 20:07:39
【问题描述】:
我正在编写一个相当基本的程序供个人使用,但我真的想确保我使用良好的做法,特别是如果我决定以后让它更健壮或什么的时候。
出于所有意图和目的,该程序接受一些输入文件作为参数,使用从文件中读取的fopen() 打开它们,使用该信息进行处理,然后将输出保存为子文件夹中的几个不同文件。例如,如果程序在~/program,则输出文件保存在~/program/csv/
我只是直接输出到文件,例如output = fopen("./csv/output.csv", "w");,用fprintf(output,"%f,%f", data1, data2);循环打印到它,然后用fclose(output);关闭,我觉得这是不好的做法。
我是否应该在写入时将其保存在临时目录中,然后在完成后移动它?我应该使用更高级的文件 i/o 库吗?我是不是完全想多了?
【问题讨论】:
-
对于这么简单的事情,我认为你想多了。如果您是写入文件的唯一进程(或线程),则无需额外工作。
-
欢迎来到 Stack Overflow。请尽快阅读FAQ。这可能是一个没有准确答案的问题。在大多数情况下,您所做的一切都很好。临时目录可能是矫枉过正。您可能想检查
fclose()是否有效;如果不是,您必须假设该文件未正确创建,并且可能应该将其删除。您可能需要检查每个输出操作;这是理论上正确的方法。显然,你必须检查fopen(),否则你会崩溃。