make_relative_filename (3) - Linux Manuals
make_relative_filename: Tries to make a relative filename from absolute path and filename. Allegro game programming library.
NAMEmake_relative_filename - Tries to make a relative filename from absolute path and filename. Allegro game programming library.
DESCRIPTIONAttempts to make a relative filename from an absolute path and an absolute filename, storing at most `size' bytes into the `dest' buffer. This function won't work if the paths are not canonical under the current platform (see canonicalize_filename()). Also, `dest' cannot be used as input value for `path' or `filename'. Example:
char base = "/long/absolute/path/program.exe"; char user_input = "/nice/and/short.txt"; ... make_relative_filename(buf, base, user_input, sizeof(buf)); /* Under Unix buf would contain: ../../../nice/and/short.txt */