【问题标题】:where I can store data /C++, Linux, QtCreator我可以在哪里存储数据 /C++、Linux、QtCreator
【发布时间】:2020-06-18 14:26:43
【问题描述】:

我在 QtCreator 中有一个小程序,但我可以在其中存储来自用户的数据,如果该程序没有 root 权限来创建目录,例如在 /usr/bin/myappname 中。 我不能拥有root权限,因为我的程序像appimage一样分发,我喜欢像普通用户一样启动该图像,而不是root。 也许我可以将数据存储到 /home/user/myappname 但如果用户在他的操作系统主目录中有其他语言,则不必存在。

【问题讨论】:

  • 我建议使用远程云或类似的东西。
  • 有一些方法可以在操作系统中查询用户主目录的路径。这样做,然后将您的数据存储在用户主目录的子目录中。提示:getpwent$HOME
  • 如果您使用 Qt,QSettings 类也是一个值得研究的选项。

标签: c++ linux qt-creator


【解决方案1】:

我可以在哪里存储数据 /C++

如果该程序没有 root 权限

一种方法是让包管理器在安装程序时创建具有超级用户权限的目录。此方法仅在使用包管理器安装程序时有效。这是服务器等守护进程的典型选择。

另一种方法是将数据存储在用户的主目录中,该进程可能具有创建目录的权限。这是交互式应用程序的典型选择。

您应该存储数据的确切位置取决于您运行该进程的系统。不同的操作系统有不同的约定。它还取决于您存储的数据类型。是暂时的吗?它依赖于 CPU 架构吗?是为了配置吗?是日志文件吗?

对于 Linux 和其他 POSIX 系统,请遵循 XDG Base Directory Specification。也学习Filesystem Hierarchy Standard。对于其他系统,请查阅他们的文档以了解最佳做法。

我可以将数据存储到 /home/user/myappname 但如果用户在他的操作系统主目录中有其他语言,则不必存在。

不要假设主目录的路径。使用HOME 环境变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多