2016-01-04 74 views
6

This question说来存储Linux设置的最佳位置是在〜/的.config /应用程序的名字在哪里存储资源C++程序在Linux上

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

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

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

+0

不是'argv [0]'告诉你程序从哪里加载? –

+1

@MarkRansom - 并非普遍。如果你碰巧通过'execl'(或朋友)运行它,那么你可以传入任何你喜欢的'argv [0]''。也会被符号链接和东西弄糊涂。 –

+0

它是只读资源还是用户数据得到更新? – Galik

回答

4

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

一般来说:

  • /usr/lib中/程序:包括对象文件,库和用于应用
  • 的/ usr /共享/程序内部的二进制文件:对于所有只读体系结构无关的数据文件
  • 在/ var/lib中/计划:持有有关的应用程序或系统

那些看起来不错的地方开始的状态信息,并可以查看文档送如果你的应用属于这些类别之一。

0

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

如果不是特定的,你应该把它放在/ var的子目录中。同样,确切的子目录可能取决于其种类和其他因素。