#include <stdio.h>;
#define BUFSIZ 256
int main ()
{
char exec_name [BUFSIZ];
readlink ("/proc/self/exe", exec_name, BUFSIZ);
puts (exec_name);
return 0;
}
下面是我自己封装的一个小小函数:
#include <stdio.h>;
#define BUFSIZE 256
int main ()
{
char *tail=NULL;
char *exec_name;
char *edir_name;
exec_name=(char *)calloc(sizeof(char),BUFSIZE);
edir_name=(char *)calloc(sizeof(char),BUFSIZE);
readlink ("/proc/self/exe", exec_name, BUFSIZE);
tail=strrchr(exec_name,'//');
memcpy(edir_name,exec_name,tail-exec_name);
printf("exec_name == [%s] \n",exec_name); // get full name.
printf("edir_name == [%s] \n",edir_name); // get dir.
if(exec_name) free(exec_name);
if(edir_name) free(edir_name);
}