canonicalize_filename(3) - Linux man page
Name
canonicalize_filename - Converts any filename into its canonical form. Allegro game programming library.Synopsis
#include <allegro.h>char *canonicalize_filename(char *dest, const char *filename, int size);
Description
Converts any filename into its canonical form, i.e. the minimal absolute filename describing the same file and fixing incorrect forward/backward slashes for the current platform, storing at most 'size' bytes into the 'dest' buffer. You can use the same buffer both as input and output because Allegro internally works on a copy of the input before touching 'dest'. Example:char buf[256];
...
canonicalize_filename(buf, "~/../s22/..\\t3st///hi.c",
sizeof(buf));
/* Running this under Unix would
return: /home/t3st/hi.c */
Note that this function won't work as expected if the path to canonicalize comes from another platform (eg. a "c:\something" path will canonicalize into
something really wrong under Unix: "/current/path/c:/something").
