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] = '\0';
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM