2016-01-04 21 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的子目錄中。同樣,確切的子目錄可能取決於其種類和其他因素。