I have an application that deals with files, and some files refer to other ones. Then I have to create relative paths, and also know whether a file has already been processed.
I want to 'canonicalize' the filename, removing references to '.' and '..', but keeping symbolic links, so realpath() and boost::filesystem::canonical() do not fit, as they remove also symbolic links, and I want to keep their structure.
I have coded some functions, but they are complicated, not perfect, and only work on POSIX. I wanted to know a more standard way of doing that.