1. 程式人生 > >C++ 幾個可以獲取路徑的函式

C++ 幾個可以獲取路徑的函式

最近工作中看到的幾個沒見過的函式,都是關於獲取路徑的總結一下。
首先解釋一下什麼是絕對路徑和相對路徑:
在linux 下 絕對路徑 是由根目錄 " / " 寫起, 比如: /usr/bin/test
相對路徑 不是由根目錄寫起, 比如當用戶進入到 /home目錄,然後再進入到soft目錄,命令順序如下
[root @ **] cd /home
[root @ **] cd soft
這時使用者所在的路徑為 /home/soft。第一個cd命令為/home,前面有斜槓;而第二個cd命令後跟soft,前 面沒有斜槓。這個soft目錄是相對於/home目錄來講的,所以稱為相對路徑。

windows下:
絕對路徑:由碟符開始, C:\windows\System32\cmd.exe
相對路徑: 從當前路徑開始的路徑,假如當前路徑在C:\windows下,對於上一條的路徑只需要輸入 System32\cmd.exe即可進入C:\windows\System32\cmd.exe。

1 char * basename(char *path) 作用是得到特定的路徑中的最後一個’/’,後面的內容,如果是/usr/test.sh

得到的內容就是 test.sh //#include <libgen.h>

2 char *dirname(char *path) //功能擷取path中的目錄路徑返回。

3 char *realpath(const char *path, char *resolved_path) //realpath()用來將引數path所指的相對路徑轉換成絕對路徑後存於引數resolved_path所指的字串陣列或指標中。返回值: 成功則返回指向resolved_path的指標,失敗返回NULL,錯誤程式碼存於errno

4 char *getcwd(char *buf,size_t size) getcwd()會將當前工作目錄的絕對路徑複製到引數buffer所指的記憶體空間中,引數size為buf的空間大小。