ABSPATH

Section: C Library Functions (3)
Updated: 11/16/82
Index Return to Main Contents
 

NAME

abspath - determine absolute pathname  

SYNOPSIS

abspath (name,result)
char *name;
char *result;  

DESCRIPTION

Abspath places the absolute pathname of the string name into the string result.

Abspath converts the pathname in the string name to an absolute pathname by prepending the name of the current working directory if necessary. Then the absolute pathname is compacted by removing and resolving superfluous steps.

Null components, and components of "." are removed because they have no effect on the meaning of the pathname.

Components of ".." are resolved by removing them together with the preceeding step. However, there are certain situations in which the preceeding step cannot be removed (for example, if there is no preceeding step) and in these cases the ".." will remain.

Abspath never returns an absolute pathname containing a trailing slash except for the case "/".

Abspath calls getwd to obtain the name of the current working directory when needed. To improve performance, the result from getwd is saved so that getwd need not be invoked again during subsequent calls on abspath.

The special invocation abspath(0,0) tells abspath to forget its saved name of the current working directory. Abspath has no way of knowing if the name of the current directory has changed, so if you care about these things you must tell it. Otherwise, abspath will continue to use its saved result from getwd and this will most likely cause it to produce erroneous results.

 

SEE ALSO

pwd(1), chdir(2), getwd(3), path(3), expand(3)  

DIAGNOSTICS

Returns -1 on error (failure in getwd); 0 otherwise.  

BUGS

The string result is assumed to be large enough. Intermediate calculations place a string in result that at most consists of the name of the current working directory concatenated with the string name plus two more characters.

If getwd fails, abspath gives up and returns -1. Generally, failures in getwd are pretty catastrophic.

If you call chdir or if the name of the current directory changes for some other reason, abspath will most likely produce incorrect results for relative path names until you call abspath(0,0).

Should getwd return a name for the current working directory that does not begin with a slash, abspath will produce a result pathname string that it considers to be a reasonable interpretation of the situation. This is not expected to happen, but abspath is prepared.


 

Index

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO
DIAGNOSTICS
BUGS

This document was created by man2html, using the manual pages.
Time: 12:50:22 GMT, May 26, 2025