2、Linux获取当前进程的程序名

函数名:ReadLink()

函数功能:获取当前进程的程序名

函数实现:

1   string ReadLink(){
2           char name[100];
3           int rval = readlink("/proc/self/exe",name,sizeof(name)-1);
4           if(rval == -1){
5               cout << "readlink error" << endl;
6           }
7           name[rval] = '';
8           return "./"+string(strrchr(name, '/') + 1);
9     }

系统函数:

1readlink()函数:

函数原型:int  readlink(const  char *path,  char *buf, size_t  bufsize);

函数说明:readlink()函数会将参数path的符号连接到内容buf所指的内存空间,返回的内容不是以NULL作为字符串结尾,但会将字符串的字符数返回。若参数bufsize小于符号连接的内容长度,过长的内容会被截断。

返回值:执行成功则传符号连接所指的文件路径字符串,失败返回-1, 错误代码存于errno

2strrchr()函数:

函数原型:char *strrchr(const char *str, char c);

函数说明:找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL

原文地址:https://www.cnblogs.com/Long-w/p/9428966.html