使用绝对路径读取 /proc 中的文件?

问题描述

编辑:问题已解决

我正在尝试读取位于 proc/PID/environ 中的文件,该文件文件夹树中比我当前的程序高 5 个文件夹。

我写下面的文件名“../../../../../proc/PID/environ”就可以了,但是我希望程序更便携(兼容)与其他计算机。

当我使用“/proc/PID/environ”时无法识别文件,这是文件绝对路径

这是似乎不起作用的代码行:

int main(int argc,char *argv[]) {
        char filename[32];
        char* value;
        int key = 579;
        char line[1000];
        int nDigits = floor(log10(abs(key))) + 1;
        snprintf(filename,nDigits+15,"/proc/%d/environ",key);
            FILE *file = fopen(filename,"r");

错误只是文件不存在。 错误:errno='没有那个文件或目录'。

filename 如果打印的确实是 /proc/579/environ 所以我看不出问题

有没有办法在 C 中读取不在当前目录中的文件,而不使用“..”返回树中? /proc/PID/environ 位于树的根部,我希望能够使用绝对路径

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)