精简版
如何从其目录之一是符号链接的路径中获取已解析的路径:
例子:
说 path = /x/y/d/f1 其中 y 是到 /a/b 的符号链接
所以解析文件路径的结果是:/x/a/b/d/f1
长版
我想编写一个将文件从 dir1 复制到 dir2 的 c++ 函数(当然这不是实际问题,而是减少更大和更复杂的问题)。
在复制过程之前,我想删除 dir2 中将从 dir1 复制的所有文件。说我有:
- 目录 1 = /a/b/c/d
- 目录 2 = /x/y/d/
假设我在 dir1 中有文件“f1”,在 dir2 中有文件“f1”,所以我的过程会:
- 删除 /x/y/d/f1
- 将 /a/b/c/d/f1 复制到 /x/y/d/f1
我的问题如下:
假设 dir 'y' 是指向 /a/b/c/ 的符号链接。现在,当我删除 /x/y/d/f1 时,实际上是在删除 /a/b/c/d/f1。(我的例子可能有漏洞,但我希望你明白)
我想避免这种情况,也就是说,当我要删除 /x/y/d/f1 时,我希望能够知道我将要删除 /x/y/d/f1 并跳过该删除
我尝试使用 POSIX readlink() 函数,但它仅在文件“f1”本身是符号链接时有效,但当其父目录之一是符号链接时不起作用。
有任何想法吗?