#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);
}
本文介绍了一种从Linux系统中获取当前进程执行文件的全名及目录名的方法,通过`readlink`函数和字符串操作实现。

6862

被折叠的 条评论
为什么被折叠?



