# gfs_realpath

## Name

gfs_realpath -- resolve pathname in Gfarm filesystem

## Synopsis

    #include <gfarm/gfarm.h>

```char *gfs_realpath``(const char * `gfarm_url`, char ** `resolved_pathp`);`

## DESCRIPTION

`gfs_realpath` expands a home directory '~' and resolves references to '.', '..' and extra '/' characters in the null terminated string pointed to by `gfarm_url` and stores the canonicalized absolute pathname to dynamically allocated memory space whose pointer is returned to `resolved_pathp`. It will be necessary to free the dynamically allocated memory space pointed to by `resolved_pathp`.

## RETURN VALUES

`NULL`

  The function terminated successfully.

`GFARM_ERR_NO_MEMORY`

  Insufficient memory was available.

`GFARM_ERR_NOT_A_DIRECTORY`

  A component of the path prefix is not a directory.

`GFARM_ERR_INVALID_ARGUMENT`

  `gfarm_url` is NULL.

`GFARM_ERR_PERMISSION_DENIED`

  `gfarm_url` points outside your accessible address space.

`GFARM_ERR_NO_SUCH_OBJECT`

  `gfarm_url` does not exist.

Others

  An error except the above occurred. The reason is shown by its pointed strings.