程序如何获取终端目录?

程序如何获取终端目录?

当从终端运行程序时,比如我输入,makemake 如何知道终端中的目录?

答案1

“当前目录”首先不是终端的属性;它由内核按进程跟踪,并且每一个进程(即使不与终端关联的进程)都有自己的“工作目录”,并会被子进程自动继承。

任何进程都可以使用更改目录()系统调用(POSIX)或设置当前目录()(Windows) 更改其自身的工作目录。使用获取cwd()(POSIX)或获取当前目录()(Windows)检索当前目录。

(终端应用程序确实有自己的“工作目录”,但这只会影响 shell开始并且不会在您cd周围时更新。几乎所有图形应用程序都始终停留在 $HOME 中。)


如果你想找出其他进程的工作目录,Linux 允许你查看/proc/<pid>/cwd,但这通常是不是你的程序应该做的事情。

相关内容