Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
realpath(3)
Edit
PageHistory
Diff
Info
LikePages
REALPATH !!!REALPATH NAME SYNOPSIS DESCRIPTION RETURN VALUE ERRORS BUGS HISTORY CONFORMING TO SEE ALSO ---- !!NAME realpath - return the canonicalized absolute pathname !!SYNOPSIS __#include __''path''__, char *__''resolved_path''__); __ !!DESCRIPTION __realpath__ expands all symbolic links and resolves references to '''/./''', '''/../''' and extra '''/''' characters in the null terminated string named by ''path'' and stores the canonicalized absolute pathname in the buffer of size __PATH_MAX__ named by ''resolved_path''. The resulting path will have no symbolic link, '''/./''' or '''/../''' components. !!RETURN VALUE If there is no error, it returns a pointer to the ''resolved_path''. Otherwise it returns a NULL pointer, and the contents of the array ''resolved_path'' are undefined. The global variable ''errno'' is set to indicate the error. !!ERRORS __EACCES__ Read or search permission was denied for a component of the path prefix. __EINVAL__ Either ''path'' or ''resolved_path'' is NULL. (In libc5 this would just cause a segfault.) __EIO__ An I/O error occurred while reading from the file system. __ELOOP__ Too many symbolic links were encountered in translating the pathname. __ENAMETOOLONG__ A component of a path name exceeded __NAME_MAX__ characters, or an entire path name exceeded __PATH_MAX__ characters. __ENOENT__ The named file does not exist. __ENOTDIR__ A component of the path prefix is not a directory. !!BUGS The libc4 and libc5 implementation contains a buffer overflow (fixed in libc-5.4.13). Thus, suid programs like mount need a private version. The length of the output buffer should have been an additional parameter, especially since pathconf(3) warns that the result of ''pathconf()'' may be huge and unsuitable for mallocing memory. !!HISTORY The __realpath__ function first appeared in BSD 4.4, contributed by Jan-Simon Pendry. In Linux this function appears in libc 4.5.21. !!CONFORMING TO In BSD 4.4 and Solaris the limit on the pathname length is MAXPATHLEN (found in pathconf()'' function. A typical source fragment would be #ifdef PATH_MAX path_max = PATH_MAX; #else path_max = pathconf (path, _PC_PATH_MAX); if (path_max The BSD 4.4, Linux and SUSv2 versions always return an absolute path name. Solaris may return a relative path name when the ''path'' argument is relative. The prototype of __realpath__ is given in __ !!SEE ALSO readlink(2), getcwd(3), pathconf(3), sysconf(3) ----
3 pages link to
realpath(3)
:
Man3r
bindtextdomain(3)
readlink(1)
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.