C语言 在程序执行过程中保持文件打开,而不是在需要时打开并关闭



我正在用c语言制作一款带有设置页面的游戏,我将这些设置存储在设置文件中。我有两个选择

int WriteSettings(void) {
FILE *File;
return (memcmp(&Settings, &DefaultSettings, sizeof(struct SettingsStruct))? GetGameDir() && (File = fopen(SettingsPath, "w")) && fwrite(&Settings, sizeof(struct SettingsStruct), 1, File) == 1 && !fclose(File) : !unlink(SettingsPath))? 0 : AlertError("Unexpected error occurred while saving settings");
}

此代码在需要时打开设置文件,写入并立即关闭,或者如果数据与默认值相同将删除设置文件。另一种选择是在游戏执行过程中保持文件打开,并且在设置更改时保持fwrite()fflush()打开,从而保存。哪个选项是最优的?

nevilad:

设置通常很少被用户更改,因此立即打开、写入和关闭会更好。

最新更新