Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C/Unix中查找我的主目录_C_Unix_Directory_Chdir_Home Directory - Fatal编程技术网

在C/Unix中查找我的主目录

在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

我编写了一个shell,每当用户给出cd-blabla之类的参数时,它都会将目录更改为bla-bla。但当我输入cd时,我希望它转到我的主目录。分配我的主目录很容易。我只编写了whereis home to terminal来查找我的主目录,但我可以更改我的主目录。如果我在函数chdir()中输入我的地址手动,它将始终更改为该目录。如何在C中找到最新的主目录?(每次更改主目录时都会更改)

您应该查看
pwd.h
。您可以通过UID或名称获取有关用户的信息

按id列出的示例

struct passwd *info = getpwuid(1000);
将1000更改为所需的UID。可以使用unistd.h中定义的getuid() 以获取当前用户

田野

info->pw_dir
包含用户的主路径。

这是“最新主目录”的意思的副本???主目录不是经常变化的东西,它通常被认为是随时间变化的常数。无论如何,您可以获取
HOME
环境变量,或者读取
passwd
db以获取用户目录条目。