2017-03-06 152 views
2

我正在寫一個程序,從給定的路徑上升文件系統層次結構,所以如果給出的路徑是/home/users/foo/bar,它將返回1個目錄,直到它遇到第一個,在這種情況下,/home檢查你是否在主目錄(linux)

什麼是最好的檢測方法?我唯一的解決方案是檢查有多少退後,但有沒有更好的方法?恐怕這可能不適用於不同的發行版。

我的代碼來打開父目錄是:

snprintf(ptr2, path_max_size, "%s/..", argv[1]); 
d = opendir(ptr2); 

我只需要添加一個while (dir != home)聲明

+0

shell上的'echo〜'顯示你的主目錄。現在您應該可以將當前目錄與主目錄進行比較 – Psi

回答

2

使用getenv()這樣的:

snprintf(homedir, MAX_PATH, "%s", getenv("HOME")); 

,然後檢查是否homedir是你有什麼後裔。


如果您正在尋找一些適用於Windows和Linux的東西,請檢查this