Есть программа с GUI. Она запускается обычным непривилегированным юзверем. И должна хранить какие-то юзерспецифичные настройки.
Если я правильно представляю, логика должна быть такой - при запуске программа должна проверить существование директории ~/.programname, и если такая отсутствует, создать её и в ней создать всякие необходимые конфигурационные файлы (например, скопировать дефолтные из /usr/share/programname).
Вопросы:
1) каким способом нужно правильно получить домашнуюю директорию юзверя? из переменной $HOME или есть в POSIX какой-то системный вызов для этого?
2) Как правильно проверять существование директории и файла?
3) Есть ли какой-то Ъ-юниксвейный документ с описанием, как правильно работать с настройками юзверя? Например, есть ли какие-то стандарты на директорию ~/.config?