当前位置: 首页 > 面试题库 >

在Linux中获取主目录

仇飞鹏
2023-03-14
问题内容

我需要一种在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改用。



 类似资料:
  • 问题内容: 寻找一个将返回目录中最新文件的命令。 看不到ls的限制参数… 问题答案: 不是很优雅,但可以。

  • 我想通过IP地址获得远程机器/主机名。我找到了很多答案,如nslookup、host、resloveip等。但是我仍然无法从我的目标机器(中央操作系统,ubuntu等)获得主机名似乎需要注册到DNS服务器? 我有一台名为test的机器,使用IP 10.1.27.97 但是我用了上面的方法还是不能得到“测试” 有人能帮我得到主机名表单IP地址吗?

  • 问题内容: 我正在尝试访问我的jar文件中的目录。我想浏览目录本身内的每个文件。例如,我尝试使用以下方法: 如果我测试此小程序,它将很好地工作。但是,一旦将内容物放入广口瓶中,并不是有几个原因。如果使用此代码,则URL始终指向jar外部,因此必须将目录放在此处。但是如果我使用的话,它不能在jar里面起作用,因为我得到了错误。我确定该目录存在于jar中。我应该如何获得罐子里的东西? 问题答案: Ja

  • 问题内容: 我需要在〜/ .config / myapp.cfg中创建一个配置文件,所以我要使用: 问题是,它告诉我,该目录不存在,类似这样。 我尝试将路径更改为/ home / user之类的东西,它起作用了。所以我设法得出一个结论,即java不知道〜/的含义以及文件夹名前的punct(。)的含义,因为/home/user/.config也无法正常工作。 我该怎么办? 问题答案: 这种表示法是一

  • 问题内容: 如何获得Java中驱动器上特定目录的名称? 例如,我在D驱动器上的目录下有一个名为的文件。 我想返回此文件的目录名称。 问题答案: 记住,代表目录和文件。

  • 问题内容: 如何获取最新的文件名或添加到目录中的文件路径? 问题答案: