2017-03-06 90 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