Linux Home frezeichnis auslesen

Antworten
hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Linux Home frezeichnis auslesen

Beitrag von hanibal »

wie kann ich unter Linux das home Verzeichnis auslesen?

ich möchte nämlich Daten im Ordner : "/home/deinuser/.chickenwars"
speichern. das mit dem ~ funktioniert irgendwie nicht :?

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Es gibt eine umgebungsvariable dafür
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

ich würde einfach mal findfirst eingeben und F1 drücken... zu diesem Befehl gibt es überraschender weise auch eine Hilfe und ein beispiel.
MFG
Michael Springwald

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Beitrag von creed steiger »

Umgebungsvariable auslesen:
http://lazarus-ccr.sourceforge.net/fpcd ... iable.html" onclick="window.open(this.href);return false;

z.B.
a := getenvironmentvariable('HOME');
(als String)

oder mit
fpsystem('cd');
wechselt du automatisch ins Homeverzeichnis des Users
und kannst es mit getcurrentdir auslesen
http://freepascal.org/docs-html/rtl/sys ... ntdir.html" onclick="window.open(this.href);return false;

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wenn wir schon bei verschiedenen Varianten sind:

Mit der Libc geht's auch:
getpwuid(getuid)^.pw_dir;

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

danke , die methode mit a := getenvironmentvariable('HOME'); funktioniert sehr gut!! :)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Vielleicht braucht man das home-Verzeichnis garnicht in einem String. AFAIK, kann man in Linux einfach '~' als Verzeichnis angeben und meint damit das Home-Verzeichnis des aktuellen users.

P.S.: wenn es hier um das Ablegen von Konfigurations-Files geht: Bitte auch den Thread "ini-Files wo" oder so ähnlich lesen. Ich habe (zunächst für Delphi) eine Komponente gemacht, die anstelle und kompatibel zu TIniFile benutzt werden kann, aber eine zusätzliche Property hat, ob die Datei

(a) für alle User gelten soll und nur vom Admin geändert werden kann
(b) für jeden User einzeln gilt oder
(c) für alle User gemeinsam gilt und von allen geändert werden kann.

Das sollte leicht zu Lazarus portierbar sein.

Ein Portierung für Linux wäre natürlich sehr wünschenswert.

-Michael

Antworten