我写了一个shell,每当用户给出像cd -blabla这样的参数时,它会将目录更改为bla bla.But当我输入cd时,我希望它转到我的主目录。分配我的主目录很简单。我只是写了whereis找到我的主目录的终端,但我可以更改我的主目录。如果我手动输入我的地址到函数chdir(),那么它将始终更改为该目录。如何在C中找到最新的主目录?(每次我改变我的主目录时都会改变)
答案 0 :(得分:0)
你应该看看pwd.h
。您可以通过UID或名称获取有关用户的信息。
id
示例struct passwd *info = getpwuid(1000);
将1000更改为您需要的UID。您可以使用unistd.h中定义的getuid() 获得当前用户。
字段
info->pw_dir
包含用户的主路径。