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
NULL, or 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 null-terminated 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.

If resolved_name is NULL, the function uses malloc() to allocate a buffer of the size indicated by _PC_PATH_MAX. You're responsible for freeing this memory by calling free() .

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 you call realpath().

Returns:

A pointer to resolved_name, or NULL if an error occurred, 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 No
Interrupt handler No
Signal handler Yes
Thread Yes

Last modified: 2013-12-23

comments powered by Disqus