目次
現在のプロセスの実行可能ファイルパスを取得します
#include <stdio.h>
#include <unistd.h>
#include <linux/limits.h>
int main() {
char dir[PATH_MAX] = {0};
int n = readlink("/proc/self/exe", dir, PATH_MAX);
printf("PATH_MAX: %d\n", PATH_MAX);
printf("readlink return: %d\n", n);
printf("dir: %s\n", dir);
return 0;
}
上記のファイルで生成された実行可能ファイルは/ home / yasi / tmp / tであり、実行結果は以下のとおりです。
PATH_MAX:4096
readlink return:16
dir:/ home / yasi / tmp / t
指定されたIDプロセスの実行可能ファイルパスを取得します
指定されたプロセスの実行可能ファイルパスを表示します10010
#include <stdio.h>
#include <unistd.h>
#include <linux/limits.h>
int main() {
char dir[PATH_MAX] = {0}, path[20]={0};
int pid=10010, n;
sprintf(path, "proc/%d/exe", pid);
n = readlink(path, dir, PATH_MAX);
printf("readlink return: %d\n", n);
printf("dir: %s\n", dir);
return 0;
}