名前 | 形式 | 機能説明 | 属性 | 戻り値 | エラー | 使用例 | 関連項目 | 注意事項
#include <unistd.h> #include <tsol/mld.h>extern char *mldgetcwd(char *buf, size_t size);
mldgetcwd() は、MLD 装飾名と SLD 装飾名を表示したカレントディレクトリのパス名へのポインタを返します。size の値は、返されるパス名の長さより 1 以上大きくなくてはなりません。
buf が NULL でない場合は、パス名は buf が指す空間に格納されます。
buf が NULL ポインタの場合は、mldgetcwd() は malloc(3C) を使って size バイトの空間を取得します。この場合、次の free() の呼び出し時には、mldgetcwd() が返すポインタを引数として使用できます。
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWtsu |
MT レベル | MT- 安全 |
mldgetcwd() は、size の大きさが十分でない場合、下位の関数でエラーが発生した場合には、 errno を設定して NULL を返します。
mldgetcwd() は、次の 1 つ以上の条件が真の場合、失敗します。
親ディレクトリを読み取って名前を取得することができません。
size が 0 になっています。
size が 0 より大きく、パス名の長さに 1 を加算した値より小さくなっています。
#include <unistd.h> #include <stdio.h> main() { char *cwd; if ((cwd = mldgetcwd(NULL, 64)) == NULL) { perror("pwd"); exit(2); } (void)printf("%s¥n", cwd); return(0); }
mldgetcwd() と chdir(2) を同時に使用すると、 予測外の結果を招く恐れがあります。