Linux 文件和目录管理全解析
1. 工作目录管理
在 Linux 中,我们可以通过代码来切换和保存工作目录,就像下面的代码示例:
int swd_fd; swd_fd = open (".", O_RDONLY); if (swd_fd == -1) { perror ("open"); exit (EXIT_FAILURE); } /* change to a different directory */ ret = chdir (some_other_dir); if (ret) { perror ("chdir"); exit (EXIT_FAILURE); } /* do some other work in the new directory... */ /* return to the saved directory */ ret = fchdir (swd_fd); if (ret) { perror ("fchdir"); exit (EXIT_FAILURE); } /* close the directory's fd */ ret = close (swd_fd); if (ret) { perror ("close"); exit (EXIT_FAILURE); }这个代码片段展示了如何保存当前工作目录,切换到另一个目录,完成工作后再返回原目录。这也是 shell 实现缓存上一个目录(如 bash 中的cd -)的方式。
不同类型的进程对工作目录有不同的设置:
-