我需要一种在Linux上运行C++程序的用户主目录.如果相同的代码可以在Unix上运行,那就太好了.我不想使用家庭环境价值.
AFAIK,根主目录为/root.如果我的程序是由root用户运行的,是否可以在此目录中创建一些文件/文件夹?
我需要一种在Linux上运行C++程序的用户主目录.如果相同的代码可以在Unix上运行,那就太好了.我不想使用家庭环境价值.
AFAIK,根主目录为/root.如果我的程序是由root用户运行的,是否可以在此目录中创建一些文件/文件夹?
您需要getuid
来获取当前用户的用户id,然后需要getpwuid
来获取该用户的密码条目(包括主目录):
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;
注意:如果你在线程应用程序中需要这个,你可以使用getpwuid_r
.