How can I determine the absolute path of a file or directory from a given relative path in C/C++ on GNU/Linux?
I know about
realpath(), but it does not work on non-existing files.
Let's say the user enters
../non-existant-directory/file.txt, and the programs working directory is
What I need is a function that returns
I need this function to check if a given path is in a certain subdirectory or not.
realpath. If it fails, start removing path components from the end one at a time and retrying
realpath until it succeeds. Then append the components you removed back onto the result of the successful
If you're sure the containing directory exists and you just want to make a file there, you only have to remove at most one component.
Another approach would be to just create the file first, then call