在不使用系统函数的情况下使用C/C++获取正在运行的PID的完整路径(Linux)

att*_*tis 1 c c++ linux pid process

所以我希望能够在不使用命令行上的任何命令的情况下获得正在运行的进程的完整路径(我有进程ID).任何人对如何做到这一点都有任何想法?

我有PID,是否有任何函数通过传递PID可以返回该进程的完整路径作为char*?

nne*_*neo 6

使用readlink("/proc/<pid>/exe", buf, bufsize)来获取路径<pid>的可执行文件.这适用于Linux,提供procfs可用(通常是).

用法示例:

int get_exe_for_pid(pid_t pid, char *buf, size_t bufsize) {
    char path[32];
    sprintf(path, "/proc/%d/exe", pid);
    return readlink(path, buf, bufsize);
}
Run Code Online (Sandbox Code Playgroud)

-1失败时返回并设置errno.