summaryrefslogtreecommitdiffstats
path: root/man/man3/canonicalize_file_name.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/canonicalize_file_name.3')
-rw-r--r--man/man3/canonicalize_file_name.380
1 files changed, 80 insertions, 0 deletions
diff --git a/man/man3/canonicalize_file_name.3 b/man/man3/canonicalize_file_name.3
new file mode 100644
index 000000000..d5fcd0f0a
--- /dev/null
+++ b/man/man3/canonicalize_file_name.3
@@ -0,0 +1,80 @@
+'\" t
+.\" Copyright 2013 Michael Kerrisk <mtk.manpages@gmail.com>
+.\" (Replaces an earlier page by Walter Harms and Michael Kerrisk)
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH canonicalize_file_name 3 (date) "Linux man-pages (unreleased)"
+.SH NAME
+canonicalize_file_name \- return the canonicalized absolute pathname
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.B #include <stdlib.h>
+.P
+.BI "char *canonicalize_file_name(const char *" path ");"
+.fi
+.SH DESCRIPTION
+The
+.BR canonicalize_file_name ()
+function returns a null-terminated string containing
+the canonicalized absolute pathname corresponding to
+.IR path .
+In the returned string, symbolic links are resolved, as are
+.I .
+and
+.I ..
+pathname components.
+Consecutive slash
+.RI ( / )
+characters are replaced by a single slash.
+.P
+The returned string is dynamically allocated by
+.BR canonicalize_file_name ()
+and the caller should deallocate it with
+.BR free (3)
+when it is no longer required.
+.P
+The call
+.I canonicalize_file_name(path)
+is equivalent to the call:
+.P
+.in +4n
+.EX
+realpath(path, NULL);
+.EE
+.in
+.SH RETURN VALUE
+On success,
+.BR canonicalize_file_name ()
+returns a null-terminated string.
+On error (e.g., a pathname component is unreadable or does not exist),
+.BR canonicalize_file_name ()
+returns NULL and sets
+.I errno
+to indicate the error.
+.SH ERRORS
+See
+.BR realpath (3).
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR canonicalize_file_name ()
+T} Thread safety MT-Safe
+.TE
+.SH STANDARDS
+GNU.
+.SH SEE ALSO
+.BR readlink (2),
+.BR realpath (3)