如何在用户的主文件夹中打开文件

flo*_*wnt 5 c++ linux

我想在linux上的用户主目录中放置一种锁文件(来自c ++),但fopen'ing~/.fluudit似乎不起作用.

fopen("~/.fluudit","w");   //fails
Run Code Online (Sandbox Code Playgroud)

R S*_*hko 10

您可以使用环境变量HOME,如果不存在,您可以使用密码数据库:

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

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

const char *homedir = pw->pw_dir;
Run Code Online (Sandbox Code Playgroud)


Dir*_*tel 7

例如,~to的扩展getenv("HOME")称为通配,这是您首先需要做的事情。您没有说明您正在使用哪些库或框架,但有些提供了这一点。