realpath()

Resolve a pathname

Synopsis:

#include <stdlib.h>

char * realpath( const char * pathname,
                 char * resolved_name );

Arguments:

pathname
The path name that you want to resolve.
resolved_name
A pointer to a buffer where the function can store the resolved name.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The realpath() function resolves all symbolic links, extra slash (/) characters and references to /./ and /../ in pathname, and copies the resulting absolute pathname into the memory referenced by resolved_name.

To determine the size of the buffer pointed to by resolved_name, call fpathconf() or pathconf() with an argument of _PC_PATH_MAX.

This function resolves both absolute and relative paths and returns the absolute pathname corresponding to pathname. All but the last component of pathname must exist when realpath() is called.

Returns:

A pointer to resolved_name, or NULL if an error occurs, in which case resolved_name contains the pathname that caused the problem.

Errors:

The realpath() function may fail and set the external variable errno to any of the errors specified for the library functions chdir(), close(), fchdir(), lstat(), open(), readlink() and getcwd().

Classification:

POSIX 1003.1 XSI

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

getcwd()