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


=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=


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注