首页 > C/C++ > linux下获取当前运行进程的文件路径

linux下获取当前运行进程的文件路径

2010年3月29日 发表评论 阅读评论
#include <unistd .h>
int get_bin_pathname( char *pathname )
{
    FILE *fp = NULL;
    char _filename[1024] = {0};
 
    int _pid = getpid();
 
    sprintf(_filename, "dirname `ls -n /proc/%d/exe | awk '{if ($8==\"->\") {print $19} else {if ($9==\"->\") {print $10} else {print $11}}}'`", _pid);
    fp = popen(_filename, "r");
    fgets(_filename, sizeof(_filename), fp);
    fclose(fp);
 
    _filename[strlen(_filename)-1] = '\0';
    strcpy( pathname, _filename );
 
    return 0;
}
</unistd>


dirname获取路径,basename获取文件名

分类: C/C++ 标签: , 1,902 views
  1. liuqiang
    2010年12月19日21:15 | #1

    其实
    lsof -p pid 你可以查到当前进程是允许的那个执行文件

    :)

  1. 本文目前尚无任何 trackbacks 和 pingbacks.