Linux下获取程序绝对路径(全路径)的方法
直接上源代码:
#include <stdio.h>
#include <unistd.h>
#define MAXL_PATH 1024
/**
* NAME: getAbsopath
* DESC: 获取程序的绝对路径
* REMK: Absopath - Absolute path
*/
char* getAbsopath()
{
static char buf[MAXL_PATH];
int i;
int len = readlink("/proc/self/exe", buf, MAXL_PATH);
if (len < 0 || len >= MAXL_PATH)
{
return NULL;
}
buf[len] = '\0';
for (i = len; i >= 0; i--)
{
if (buf[i] == '/')
{
buf[i + 1] = '\0';
break;
}
}
return buf;
}
int main(int argc, char** argv)
{
printf("%s\n", getAbsopath());
return 0;
}
#include <stdio.h>
#include <unistd.h>
/**
* NAME: getAbsopath
* DESC: 获取程序的绝对路径
*