如何获取文件或目录的绝对路径,*不存在?
如何在GNU / Linux上的C / C ++中确定给定相对路径的文件或目录的绝对路径?
我知道realpath()
,但它不适用于不存在的文件。
假设用户输入../non-existant-directory/file.txt
,程序工作目录为/home/user/
。
我需要的是一个返回/home/non-existant-directory/file.txt
的函数。
我需要此函数来检查给定路径是否在某个子目录中。
试试realpath
。 如果失败,则一次开始从一端删除路径组件realpath
试realpath
直到成功为止。 然后将您删除的组件追加到成功的realpath
调用的结果上。
如果您确定包含目录存在并且您只想在那里创建文件,则只需删除最多一个组件。
另一种方法是首先创建文件,然后调用realpath
。