在 Linux 上,每个进程都有自己的根目录。对于大多数进程,这是 /
。但是,chroot
可以改变这一点。此信息通过 /proc
公开。但是,如何以编程方式找出进程的根目录?是否有系统调用或 libc 函数?
最佳答案
我不知道是否有其他方法,但很多程序依赖于 /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);
}
}
关于linux - 如何以编程方式获取进程的根目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54892600/