/* * canonicalize.c -- Return a malloc'd string containing the canonical * absolute name of the named file. The last file name component need * not exist, and may be a symlink to a nonexistent file. * Copyright (C) 2009 STMicroelectronics * Author: Salvatore Cro <salvatore.cro@st.com> * * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ #include <stdlib.h> #include <limits.h> #ifdef __USE_GNU #ifndef PATH_MAX # ifdef _POSIX_VERSION # define PATH_MAX _POSIX_PATH_MAX # else # ifdef MAXPATHLEN # define PATH_MAX MAXPATHLEN # else # define PATH_MAX 1024 # endif # endif #endif char * canonicalize_file_name (const char *name) { char *buf = (char *) malloc(PATH_MAX); if(unlikely(buf == NULL)) return NULL; *buf='\0'; return realpath (name, buf); } #endif