Wird .config für verschiedene Systemsprachen als andere Dinge bezeichnet?

7

Ich mache eine Anwendung, die Dateien im Ordner ~ / .config liest / schreibt. Ich möchte jedoch sicherstellen, dass es unter allen Systemen funktioniert. Wird .configandere Dinge für verschiedene Systemsprachen genannt? Gibt es eine bessere Möglichkeit, auf seinen Wert zuzugreifen, als eine fest codierte .configZeichenfolge zu verwenden? (a la an Umgebungsvariable)

Was ist die beste Vorgehensweise dafür? Wenn es keine etablierten Best Practices gibt, was ist der einfachste Ansatz, der das gewünschte Ergebnis garantiert?

weberc2
quelle
Warum machen Sie nicht Ihren eigenen Ordner spezifisch für Ihre eigene App? ~/.myapp
Ed Manet
2
Wenn Sie Fragen stellen, verwenden Sie bitte einen richtigen, präzisen Titel und nicht so etwas wie "~ / .config-Ordner".
RolandiXor
1
@EdManet: Dies würde das Home-Verzeichnis verschmutzen. Ich erinnere mich an die Tage, bevor XDG weitgehend unterstützt wurde und mein Home-Verzeichnis wirklich ein Chaos war. Um ehrlich zu sein, ist mein Home-Verzeichnis aufgrund von Anwendungen, die nicht XDG folgen, immer noch unordentlich.
Andrea Corbellini
@ RolandiXor sorry, ich bin es gewohnt, auf StackOverflow zu posten, wo ausdrucksstarke Titel nicht empfohlen werden (zumindest meine Titel werden regelmäßig von ihrer Bedeutung abgeschnitten). Ich werde mich daran erinnern, dass diese Community vernünftige Titel begrüßt. :)
weberc2

Antworten:

8

Dieses Konfigurationsverzeichnis wird durch den Standard für die XDG-Basisverzeichnisspezifikation angegeben .

Die Antwort auf Ihre Frage finden Sie im Abschnitt Umgebungsvariablen :

$XDG_CONFIG_HOMEDefiniert das Basisverzeichnis, in Bezug auf das benutzerspezifische Konfigurationsdateien gespeichert werden sollen. Wenn $XDG_CONFIG_HOMEentweder nicht festgelegt oder leer, sollte ein Standardwert von $HOME/.configverwendet werden.

Lesen Sie auch die Grundlagen , um sicherzustellen, dass Sie die richtigen Verzeichnisse für die richtigen Dateien verwenden.

Möglicherweise möchten Sie auch wissen, was zu tun ist, wenn dies $HOMEnicht festgelegt ist. Dies wird von XDG nicht angegeben. Einige Anwendungen geben jedoch einen Fehler aus und beenden das Programm. Alternativ können Sie den aktuellen Benutzer - ID über erhalten getuid(2)und zu verwenden , getpwuid(3)um das Home - Verzeichnis entpacken.

Andrea Corbellini
quelle
5

Es ist Teil der XDG-Basisverzeichnisspezifikation :

$ XDG_CONFIG_HOME definiert das Basisverzeichnis, in Bezug auf das benutzerspezifische Konfigurationsdateien gespeichert werden sollen. Wenn $ XDG_CONFIG_HOME entweder nicht festgelegt oder leer ist, sollte ein Standardwert von $ HOME / .config verwendet werden.

Florian Diesch
quelle