Linux下C语言中如何获取文件的绝对路径

本文最后更新于2017年8月11日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

学习需要

正文:

参考解答:
#include <stdlib.h>
#include <stdio.h>
#ifndef PATH_MAX
#define PATH_MAX 128
#endif
int main(int argc, char const *argv[])
{
    if(argc < 2) {
        return 1;
    }
    char resolved_path[PATH_MAX];
    int i;
    for(i = 1; i < argc; i++){
        realpath(argv[i], resolved_path);
        printf("%s -> %s\n", argv[i], resolved_path);
    }
    return 0;
}

&

#ifndef PATH_MAX
#define PATH_MAX 1024
#endif
int get_path_from_pid (int pid, char path[PATH_MAX])
{
    char file[PATH_MAX];
    snprintf(file, PATH_MAX, "/proc/%d/exe", pid);
    int len = 0;
    if ((len = readlink(file, path, PATH_MAX-1)) != -1) {
        path[len] = '\0';
        return 0;
    }
    path[0] = '\0';
    return -1;
}
参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3517.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注