是否有任何跨平台方式可以找出哪个dir应该是我的应用程序配置?
例如,Mozilla Firefox在Linux上使用/home/user/.mozilla,在Windows上使用%APPDATA%\ Mozilla。 http://kb.mozillazine.org/Profile_folder_-_Firefox#Navigating_to_the_profile_folder
是否有任何lib处理它,或者只是#ifdef?
答案 0 :(得分:2)
Mozilla是一款旧应用程序,已将其配置保留在$ HOME / .mozilla中很长一段时间。但是,鼓励新应用程序将配置文件存储在$ HOME / .config / myappname中。
我认为大多数通用跨平台库都有一种获取基本配置目录的方法(通常是Linux上的$ HOME / .config /和Windows上的%APPDATA)。例如,GLib有g_get_user_config_dir(),您需要做的就是将您的应用名称附加到结果中(未经测试的代码):
gchar *
myapp_get_config_dir ()
{
const gchar *user_config_dir;
gchar *my_config_dir;
user_config_dir = g_get_user_config_dir ();
my_config_dir = g_build_filename (user_config_dir, "myappname", NULL);
return my_config_dir;
}
答案 1 :(得分:1)
我担心你必须采用#ifdef方式,没有听到/看过任何lib这样做。