在Linux中获取主目录

亚历克斯F:

我需要一种在Linux上运行的C ++程序中获取用户主目录的方法。如果相同的代码可以在Unix上运行,那就太好了。我不想使用HOME环境值。

AFAIK,根主目录是/ root。如果我的程序由root用户运行,可以在该目录中创建一些文件/文件夹吗?

塞缪尔·克拉切科(R Samuel Klatchko):

您需要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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章