在C/Unix中查找我的主目录
我编写了一个shell,每当用户给出cd-blabla之类的参数时,它都会将目录更改为bla-bla。但当我输入cd时,我希望它转到我的主目录。分配我的主目录很容易。我只编写了whereis home to terminal来查找我的主目录,但我可以更改我的主目录。如果我在函数chdir()中输入我的地址手动,它将始终更改为该目录。如何在C中找到最新的主目录?(每次更改主目录时都会更改)您应该查看在C/Unix中查找我的主目录,c,unix,directory,chdir,home-directory,C,Unix,Directory,Chdir,Home Directory,我编写了一个shell,每当用户给出cd-blabla之类的参数时,它都会将目录更改为bla-bla。但当我输入cd时,我希望它转到我的主目录。分配我的主目录很容易。我只编写了whereis home to terminal来查找我的主目录,但我可以更改我的主目录。如果我在函数chdir()中输入我的地址手动,它将始终更改为该目录。如何在C中找到最新的主目录?(每次更改主目录时都会更改)您应该查看pwd.h。您可以通过UID或名称获取有关用户的信息 按id列出的示例 struct passwd
pwd.h
。您可以通过UID或名称获取有关用户的信息
按id列出的示例
struct passwd *info = getpwuid(1000);
将1000更改为所需的UID。可以使用unistd.h中定义的getuid()
以获取当前用户
田野
info->pw_dir
包含用户的主路径。这是“最新主目录”的意思的副本???主目录不是经常变化的东西,它通常被认为是随时间变化的常数。无论如何,您可以获取HOME
环境变量,或者读取passwd
db以获取用户目录条目。