как открыть файл в домашней папке пользователя - PullRequest
5 голосов
/ 27 мая 2010

Я хотел бы поместить своего рода файл блокировки в домашнюю директорию пользователя на linux (из c ++), но поиск ~ / .fluudit, похоже, не работает.

fopen("~/.fluudit","w");   //fails

Ответы [ 2 ]

10 голосов
/ 27 мая 2010

Вы можете использовать переменную среды HOME, а если ее нет, вы можете использовать базу паролей:

#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

struct passwd *pw = getpwuid(getuid());

const char *homedir = pw->pw_dir;
4 голосов
/ 27 мая 2010

Расширение от ~ до, скажем, getenv("HOME") называется globbing и это то, что вам нужно сделать в первую очередь. Вы не сказали, какие библиотеки или фреймворки вы используете, но некоторые предоставляют это.

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