Я не знаю, есть ли другой способ, но многие программы полагаются на машиночитаемые файлы в /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);
}
}