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

#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获取文件名

作者:henry.wu | 分类目录:C/C++ | 标签:

一条评论

  1. liuqiang 说道:

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

    :)

发表评论

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

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">