realpath(3) Library Functions Manual realpath(3) realpath - (libc -lc) #include #include char *realpath(const char *restrict path, char *restrict resolved_path); glibc ( feature_test_macros(7)): realpath(): _XOPEN_SOURCE >= 500 || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE realpath() /./ /../ '/' path . PATH_MAX resolved_path. /./ /../. resolved_path NULL realpath() malloc(3) PATH_MAX . free(3). realpath() resolved_path. NULL resolved_path errno . EACCES . EINVAL path NULL. ( glibc 2.3 resolved_path NULL.) EIO / . ELOOP . ENAMETOOLONG NAME_MAX PATH_MAX . ENOENT . ENOMEM . ENOTDIR . attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |realpath() | | MT-Safe | +------------+------------------------------------+--------------------+ EACCES ENOENT resolved_path NULL path resolved_path. POSIX.1-2008. 4.4BSD POSIX.1-2001 Solaris. POSIX.1-2001 resolved_path NULL . POSIX.1-2008 . 4.4BSD Solaris MAXPATHLEN ( ). SUSv2 PATH_MAX NAME_MAX pathconf(3). #ifdef PATH_MAX path_max = PATH_MAX; #else path_max = pathconf(path, _PC_PATH_MAX); if (path_max <= 0) path_max = 4096; #endif ( .) POSIX.1-2001 resolved_path. POSIX.1-2001 PATH_MAX PATH_MAX pathconf(3). pathconf(3) POSIX pathconf(3) malloc pathconf(3) -1 PATH_MAX . resolved_path == NULL POSIX.1-2001 POSIX.1-2008 . realpath(1) readlink(2) canonicalize_file_name(3) getcwd(3) pathconf(3) sysconf(3) 3 . . : . 6.18 8 2026 realpath(3)