我正在编写一个从给定路径上升文件系统层次结构的程序,因此如果给定的路径是 /home/users/foo/bar
,它将返回 1 个目录,直到它点击第一个,在本例中为 /home
检测此问题的最佳方法是什么?我唯一的解决方案是检查有多少个退格键,但是有更好的方法吗?恐怕这可能不适用于不同的发行版。
我打开父目录的代码是:
snprintf(ptr2, path_max_size, "%s/..", argv[1]);
d = opendir(ptr2);
我只需要添加一个while (dir != home)
语句
最佳答案
使用getenv()像这样:
snprintf(homedir, MAX_PATH, "%s", getenv("HOME"));
然后检查 homedir
是否是您已下降到的目录。
如果您正在寻找同时适用于 Windows 和 Linux 的东西,请查看 this .
关于检查您是否位于主目录(linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42615918/