哪里可以在linux上存储C ++程序的资源

时间:2016-01-04 20:46:05

标签: c++ linux

This question说在linux中存储设置的最佳位置是〜/ .config / appname

我写的程序需要使用99MB .dat文件来识别面部标记,将其嵌入到二进制文件中并不是一个好主意。

是否有一些默认的地方可以在linux上存储资源?目前它只是在可执行文件旁边的目录中,但这要求程序运行时当前目录是它所在的目录。

在linux上处理这类资源的最佳方法是什么? (这可能是至少OSX的跨平台)

2 个答案:

答案 0 :(得分:4)

你应该看一下Filesystem Hierarchy Standards。根据数据(它会改变,是否在所有安装中保持不变等),它的放置路径将根据标准而改变。

一般来说:

  • / usr / lib / program:包括应用程序的目标文件,库和内部二进制文件
  • / usr / share / program:适用于所有只读架构的独立数据文件
  • / var / lib / program:保存与应用程序或系统有关的状态信息

这些似乎是非常好的起点,您可以查看文档,看看您的应用是否属于其中一个类别。

答案 1 :(得分:0)

如果文件特定于运行应用程序的用户,它应该在〜/的子目录中,但AFAIK没有标准,最好的选择在很大程度上取决于文件类型/用法。如果用户可以通过GUI看到它,您可以使用〜/ Desktop或〜/ Downloads。如果它是临时的,你可以使用〜/ tmp或〜/ var / tmp。

如果不具体,则应将其放在/ var的子目录中。同样,确切的子目录可能取决于其种类和其他因素。