QSettings beim fehlenden Schreibrechten

Alles rund um die Programmierung mit Qt
Antworten
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

QSettings beim fehlenden Schreibrechten

Beitrag von AuE »

Hi, wohin schreibt die QSetting eigentlich wenn für den Ini File Path aus dem ich lese keine Schreibrechte habe?
Solang das Programm läuft kann ich noch auf die gespeicherten Werte zugreifen, allerdings wenn das Programm beendet wird kann ich bei einem Neustart die eingefügten Key<->Value Paare nicht mehr laden.
Ich würde auf ein tmp-File tippen, aber wohin?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Es gibt eigentlich USER_SCOPE und SYSTEM_SCOPE.
Wenn du deine QSettings nicht mit nem Pfad (absolut oder relativ) konstruierst, sondern applicationName() und organizationName() verwenden lässt, hast du nie Probleme.
Ansonsten wenn das das einzige Settings-File ist, kannst es ja mal versuchen mit QSettings::setPath() dem USER_SCOPE auf ein für diech schreibbbares DIR umzubiegen.
Keine Ahnung ob es klappt, war nur der erste Schluss aus einem kurzen Blick in die Doku.

Aber setz den Pfad vor dem Erstellen einer Instanz, damit auch die Werte aus USER_SCOPE wirklich eingelesen werden...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Hi,

dank dir erstmalfür deine AW aber so eincach ists leider nicht ;)

Geht darum das ich in der odbc.ini (aus /etc ) lese/schreibe ;)

Viel mehr helfen tut da schon das isWritable - aber die Frage is wohin wirds geschrieben wenn es nicht writable ist.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Ja schreibt er denn ???
nen fallback sucht er eigentlich nur fuers lesen.
Wenn dein QSettings wirklich gleich auf /etc/... zeigt, wird das schreiben in die hose gehen oder ?
Ich denk das er die Wertepaare zur laufzeit nur im speicher haelt (oder tempfile), und erst beim ende auf die inis schreiben will ...

Ciao ...
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Er meckert nicht, sagen wir es so. ;)
Er sagt mir nix via Konsole o.ä. und beim auslesen(zur Laufzeit) hat er die Variablen noch. Nach dem beenden sind sie weg...

Also im Prinzip wird das Prog später als root laufen aber mhhh wenigstens ne warning hätt ich erwartet ;)
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

mit sync() und status() solltest du diesen Fall eigentlich abdecken können.. (QSettings::AccessError)
Möglichweise bist du dann jedoch noch von http://bugreports.qt.nokia.com/browse/QTBUG-3328 betroffen...

hth..
Antworten