我需要一种在Linux上运行的C ++程序中获取用户主目录的方法。如果相同的代码可以在Unix上运行,那就太好了。我不想使用HOME环境值。
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
改用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句