GETCWD(3)

名前
getcwd, get_current_dir_name, getwd - カレントワーキングディレクトリ名の取得

書式
#include <unistd.h>

char *getcwd(char *buf, size_t size);
char *get_current_working_dir_name(void);
char *getwd(char *buf);

説明
getcwd() 関数はカレントワーキングディレクトリの絶対パス名(absolute pathname)を buf で示された size 長の配列にコピーする.

カレント絶対パス名(current absolute path name)が size よりも長い場合は, 返り値として NULL が返り errno に ERANGE がセットされる. アプリケーションはこのエラーをチェックし, 必要に応じてより長いバッファを用意すべきである.

POSIX.1への拡張として, 呼びだし時に buf が NULL の場合は, getcwd() は malloc() を用いてバッファを動的に獲得する. この場合必要に応じて動的に獲得さ れたバッファは0未満の場合を除き, size 長となる. この方法で獲得したバッファは free() で解放することが可能である(し賢明だ).

__USE_GNU がdefineされていれば, get_current_dir_name がプロトタイプ宣言される. この関数はカレントディレクトリ名(current directory nam e)を収めるのに 十分な大きさの配列を malloc(3) で獲得する. 環境変数 PWD が正しい値でセットされていれば, その値が返る.

__USE_BSD がdefineされていれば getwd がプロトタイプ宣言される. この関数はカレントワーキングディレクトリの絶対パス名を収めるのに 十分な大きさの配列を malloc(3) で獲得する.

返り値
エラー(例えばカレントディレクトリが読込可能でない)が発生すると NULL を返し, errno がエラーに従ってセットされる. 成功すれば buf を返す.

準拠
POSIX.1

関連項目
chdir(2), free(3), malloc(3)