ihsan Asked: 2022-05-27 04:47:51 +0800 CST2022-05-27 04:47:51 +0800 CST 2022-05-27 04:47:51 +0800 CST 程序如何获取终端目录? 772 从终端运行程序时,说我输入makemake 如何知道终端中的目录? terminal 1 个回答 Voted Best Answer user1686 2022-05-27T04:53:54+08:002022-05-27T04:53:54+08:00 “当前目录”首先不是终端的属性;它由每个进程的内核跟踪,每个进程(即使是那些与终端无关的进程)都有自己的“工作目录”,子进程会自动继承它。 任何进程都可以使用chdir()系统调用 (POSIX) 或SetCurrentDirectory() (Windows) 来更改自己的工作目录。使用getcwd() (POSIX) 或GetCurrentDirectory() (Windows) 检索当前目录。 (终端应用程序确实有自己的“工作目录”,但这只会影响 shell 的启动位置,并且不会在您cd出现时更新。几乎所有图形应用程序都始终位于 $HOME。) 如果你想找出其他进程的工作目录,Linux 可以让你查看/proc/<pid>/cwd,但这通常不是你的程序应该做的事情。
“当前目录”首先不是终端的属性;它由每个进程的内核跟踪,每个进程(即使是那些与终端无关的进程)都有自己的“工作目录”,子进程会自动继承它。
任何进程都可以使用chdir()系统调用 (POSIX) 或SetCurrentDirectory() (Windows) 来更改自己的工作目录。使用getcwd() (POSIX) 或GetCurrentDirectory() (Windows) 检索当前目录。
(终端应用程序确实有自己的“工作目录”,但这只会影响 shell 的启动位置,并且不会在您
cd
出现时更新。几乎所有图形应用程序都始终位于 $HOME。)如果你想找出其他进程的工作目录,Linux 可以让你查看
/proc/<pid>/cwd
,但这通常不是你的程序应该做的事情。