2016-01-04 13 views
6

This question mówi najlepszym miejscem na przechowywanie ustawień w systemie Linux jest w ~/.config/appnameGdzie przechowywać środki na program w C++ na Linux

Program Piszę potrzeby użyć 99MB pliku .dat uznawania punkty orientacyjne twarzy, osadzanie ich w pliku binarnym nie wydaje się dobrym pomysłem.

Czy jest jakieś domyślne miejsce do przechowywania zasobów na Linuksie? obecnie znajduje się tylko w katalogu obok pliku wykonywalnego, ale wymaga to uruchomienia programu z bieżącym katalogiem będącym katalogiem, w którym się znajduje.

Jaki jest najlepszy sposób na radzenie sobie z takimi zasobami na Linuksie? (może to być platforma z co najmniej OSX)

+0

Czy "argv [0]" nie mówi, skąd program został załadowany? –

+1

@MarkRansom - Nie uniwersalnie. Jeśli zdarzyło ci się uruchamiać go przez 'execl' (lub znajomych), możesz przekazać cokolwiek chcesz dla' argv [0] '. Zostaniemy także zdezorientowani przez dowiązania symboliczne i inne. –

+0

Czy jest to zasób tylko do odczytu, czy też dane użytkownika są aktualizowane? – Galik

Odpowiedz

4

Powinieneś rzucić okiem na Filesystem Hierarchy Standards. W zależności od danych (zmieni się, czy będzie stały we wszystkich instalacjach itp.) Ścieżka, w której zostanie umieszczona, zmieni się w zależności od standardów.

Ogólnie:

  • /usr/lib/Program: zawiera pliki obiektowe, biblioteki i pliki binarne wewnętrzne dla aplikacji
  • /usr/share/programu: Dla wszystkich tylko do odczytu niezależny od architektury danych pliki
  • /var/lib/Program: przechowuje informacje o stanie odnoszących się do aplikacji lub systemu

Ci wydawać się całkiem dobrym miejscem do rozpoczęcia, a można sprawdzić dokumentację do s ee, jeśli Twoja aplikacja należy do jednej z tych kategorii.

0

Jeśli plik jest specyficzny dla użytkownika, na którym działa aplikacja, powinien znajdować się w podkatalogu ~ /, ale AFAIK nie ma standardu, a najlepszy wybór zależy w dużym stopniu od typu pliku/użycia. Jeśli powinien być widoczny dla użytkownika za pośrednictwem GUI, możesz użyć ~/Desktop lub ~/Downloads. Jeśli jest tymczasowy, możesz użyć ~/tmp lub ~/var/tmp.

Jeśli nie jest specyficzny, powinieneś umieścić go w podkatalogu/var. Ponownie, dokładny subdir może zależeć od jego rodzaju i innych czynników.

Powiązane problemy