GETCWD
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
getcwd
getwd
- 作業ディレクトリのパス名を取得する
索引
ライブラリ
Lb libc
索引
書式
In unistd.h
Ft char *
Fn getcwd char *buf size_t size
Ft char *
Fn getwd char *buf
索引
解説
Fn getcwd
関数は、現在の作業ディレクトリの絶対パス名を
Fa buf
で参照されるメモリにコピーし、
Fa buf
へのポインタを返します。
Fa size
引数は、
Fa buf
で参照される配列のバイト数によるサイズです。
Fa buf
が
NULL
の場合は、パス名を保存するのに必要なだけの空間が割り振られます。
この空間は後で
free(3)
できます。
関数
Fn getwd
は、
Fn getcwd
を
Fa buf
引数と、サイズとして (インクルードファイル
Aq Pa sys/param.h
で定義された)
MAXPATHLEN
を用いて呼び出したのと同等の関数です。
Fa buf
が少なくとも、
MAXPATHLEN
バイトの長さを持たなければならないことは明らかです。
これらのルーチンは従来、作業ディレクトリに戻ってくるために
その名前を保存するようなプログラムによって使用されてきました。
これをより速く誤りなく遂行するものとして、カレントディレクトリ
(`.'
)
をオープンしておき、
fchdir(2)
関数を使って戻る方法があります。
索引
戻り値
無事に完了した場合はパス名へのポインタが返ります。
そうでなければ
NULL
ポインタが返り、エラーを示すためグローバル変数
errno
が設定され、さらに
Fn getwd
が
errno
に関連するエラーメッセージを
Fa buf
で参照されるメモリにコピーします。
索引
エラー
Fn getcwd
関数は次の場合に失敗します。
- Bq Er EACCES
-
パス名の構成要素において、
読み込みまたは検索のパーミッションが拒否されました。
- Bq Er EINVAL
-
Fa size
引数が 0 です。
- Bq Er ENOENT
-
パス名の構成要素がもはや存在しません。
- Bq Er ENOMEM
-
利用できるメモリが十分ではありません。
- Bq Er ERANGE
-
Fa size
引数が、0 よりも大きいですが、パス名 + 1 よりも小さいです。
索引
関連項目
chdir(2),
fchdir(2),
malloc(3),
strerror(3)
索引
規格
Fn getcwd
関数は、
St -p1003.1-90
に適合しています。
NULL
ポインタを指定して、必要に応じて
Fn getcwd
にメモリを割り振らせる機能は拡張部分です。
索引
歴史
Fn getwd
関数は、
BSD 4.0
ではじめて登場しました。
索引
バグ
Fn getwd
関数はエラーチェックを十分に行っていません。
また非常に長いパス名は、有効でも返すことができません。
この関数は、互換性のために提供されています。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
- 歴史
-
- バグ
-
Time: 07:06:51 GMT, January 12, 2009