我在QtCreator中有一个小程序,但如果程序没有root权限(例如在/usr/bin/myappname中)创建dir,我可以在其中存储来自用户数据。 我不能拥有root权限,因为我程序是像appimage一样分发的,我喜欢像普通用户一样启动映像,而不是root。 也许我可以将数据存储到/home/user/myappname,但是如果用户在他的OS中有其他语言,home dir就不必存在。
我可以存储数据的地方/C++
如果程序没有根权限
一种方法是让包管理器在安装程序时创建具有超级用户权限的目录。 此方法仅在使用包管理器安装程序时起作用。 这是服务器等守护进程的典型选择。
另一种方法是将数据存储在用户的主目录中,在该主目录中,进程可能具有创建目录的权限。 这是交互式应用程序的典型选择。
存储数据的确切位置取决于运行进程的系统。 不同的操作系统有不同的约定。 它还取决于您存储的是哪种数据。 是暂时的吗? 是否依赖于CPU架构? 是为了配置吗? 是日志文件吗?
对于Linux和其他POSIX系统,遵循XDG基本目录规范。 同时研究文件系统层次标准。 对于其他系统,请查阅其文档以了解最佳实践。
我可以将数据存储到/home/user/myappname,但如果用户在其OS中有其他语言,home目录就不必存在。
不要假定主目录的路径。 请使用home
环境变量。