如何获取文件或目录的绝对路径,*不存在?

如何在GNU / Linux上的C / C ++中确定给定相对路径的文件或目录的绝对路径?
我知道realpath() ,但它不适用于不存在的文件。

假设用户输入../non-existant-directory/file.txt ,程序工作目录为/home/user/
我需要的是一个返回/home/non-existant-directory/file.txt的函数。

我需要此函数来检查给定路径是否在某个子目录中。

试试realpath 。 如果失败,则一次开始从一端删除路径组件realpathrealpath直到成功为止。 然后将您删除的组件追加到成功的realpath调用的结果上。

如果您确定包含目录存在并且您只想在那里创建文件,则只需删除最多一个组件。

另一种方法是首先创建文件,然后调用realpath

Interesting Posts