Linux中pwd命令源码解析
时间: 2024-02-09 18:10:41 浏览: 30
`pwd` 命令是一个内建命令,其源码并没有单独的文件,而是包含在 shell 的源码中。这里以 Bash shell 为例,简要解析 `pwd` 命令的源码。
在 Bash 的源码中,`pwd` 命令的实现可以在 `builtins/pwd.def` 文件中找到。该文件定义了 `pwd_builtin` 函数,该函数是 `pwd` 命令的实际实现。
以下是 `pwd_builtin` 函数的源码:
```c
/* Print the current working directory. */
int
pwd_builtin (list)
WORD_LIST *list ATTRIBUTE_UNUSED;
{
char *pwd;
pwd = get_working_directory ("pwd");
if (pwd == 0)
return (EXECUTION_FAILURE);
printf ("%s\n", pwd);
fflush (stdout);
return (EXECUTION_SUCCESS);
}
```
该函数首先调用 `get_working_directory` 函数获取当前工作目录的路径,然后将路径打印到标准输出中。最后,该函数返回 `EXECUTION_SUCCESS` 表示程序正常执行完毕。
`get_working_directory` 函数的实现可以在 `lib/sh/getcwd.c` 文件中找到。该函数使用了 `getcwd` 系统调用来获取当前工作目录的路径,并在必要时调用 `chdir` 系统调用来恢复当前工作目录。具体实现可以参考该文件的源码。
总体来说,`pwd` 命令的实现比较简单,其主要功能是获取并打印当前工作目录的路径。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)