push
2025/12/19 2:35:37
在 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 实现cd -命令来切换到上一个目录的原理。不同类型的进程对工作目录有不同的设置习惯:
- 像守护进程这类不关心当前工作目