# gfs_realpath

## Name

gfs_realpath -- 正規化された絶対パス名を返す

## Synopsis

    #include <gfarm/gfarm.h>

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

## DESCRIPTION

`gfs_realpath` は， `gfarm_url` で与えられたパス名のホームディレクトリを展開し， '.'，'..' や余分な '/' を解決して， 正規化された絶対パス名を動的に確保されるメモリに格納します． 動的に確保されたメモリのポインタは `resolved_pathp` に返されます． このメモリ領域はこの後 free(3) により開放する必要があります．

## RETURN VALUES

`NULL`

  正常終了を示します．

`GFARM_ERR_NO_MEMORY`

  メモリ不足のため処理を中止しました．

`GFARM_ERR_NOT_A_DIRECTORY`

  指定したパス名の親ディレクトリが、実際にはディレクトリでなかった ことを示します．

`GFARM_ERR_INVALID_ARGUMENT`

  `gfarm_url` が NULL ポインタです．

`GFARM_ERR_PERMISSION_DENIED`

  指定されたパスへアクセスする権限がありません．

`GFARM_ERR_NO_SUCH_OBJECT`

  指定されたパス名が存在しません．

その他

  上記以外のエラーが生じたことを示します．