我想在linux上的用户主目录中放置一种锁文件(来自c ++)但是fopen'ing~ / .fluudit似乎不起作用。
fopen("~/.fluudit","w"); //fails
答案 0 :(得分:10)
您可以使用环境变量HOME
,如果不存在,您可以使用密码数据库:
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;
答案 1 :(得分:4)
将~
扩展为getenv("HOME")
称为通配,这是您需要先做的事情。您没有说明您使用的是哪些库或框架,但有些提供了这个。