Как написать путь, который включает переменные среды? - PullRequest
1 голос
/ 15 ноября 2010

Я пишу приложение Qt, которое работает в Linux.Мне нужно записать файл в:

"$XDG_CONFIG_DIRS/whatever"/ "$HOME/whatever"

Как мне разрешить переменные среды ## Заголовок ## в моем коде?

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Используя только обычные библиотечные функции, вы используете <a href="http://linux.die.net/man/3/getenv" rel="nofollow">getenv()</a> для поиска значения переменных среды:

const char *dirs = getenv("XDK_CONFIG_DIRS");

Это вернет NULL, если переменная не была задана в среде, поэтому убедитесь, что ваш код обрабатывает этот случай.

В этом случае вам придется самостоятельно «интерполировать» значения переменных в остальную часть текста.

Не уверен, что Qt предоставляет оболочку или что-то более высокого уровня, которое может выполнить интерполяцию за вас, я не работал с Qt.

0 голосов
/ 15 ноября 2010

getenv, как уже упоминалось, если вы действительно нацелены только на Linux.Если вы хотите, чтобы он переносился на платформы не-Unix, вы должны использовать qgetenv () или QProcessEnvironment :: systemEnvironment (). Value (QLatin1String ("XDG_CONFIG_DIRS")).В общем, хорошей практикой является использование переносимого способа Qt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...