我不知道是否有其他方法,但很多程序依赖于机器可读文件 /proc 获取有关进程的其他信息,并且没有任何内在错误。
/proc
以下是通过编程方式查找自己的根目录的过程示例 /proc :
#include <stdio.h> #include <limits.h> #include <unistd.h> int main() { char foo[PATH_MAX+1]; int count = readlink("/proc/self/root", foo, PATH_MAX); if(count < 0) { perror("Can't find root dir (is /proc mounted here?)"); } else { foo[count]=0; printf("My root dir is %s\n", foo); } }
好吧没有。有一个命令来执行此操作是pwdx,这是它的代码 https://elixir.bootlin.com/busybox/latest/source/procps/pwdx.c 。它还从/ proc读取根目录。您可以使用getpid函数获取进程的pid。