# 2.6.1.3 Resolution

char *zix_canonical_path(ZixAllocator *allocator, const char *path)

  Return `path` as a canonical absolute path to a “real” file.

  This expands all symbolic links, relative references, and removes extra directory separators.

  Since this function may return null anyway, it accepts a null parameter to allow easier chaining of path functions when only the final result is required, for example:

      char* path      = zix_path_join(alloc, "/some/dir", "filename.txt");
      char* canonical = zix_canonical_path(path);
      if (canonical) {
        // Do something with the canonical path...
      } else {
        // No canonical path for some reason, we don't care which...
      }

  Returns:

    A new canonical version of `path`, or null if it doesn’t exist.