.\" Updated 2007-09-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.64
.\"
.TH CHDIR 2 2010-09-26 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-chdir, fchdir \- ºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÎÊѹ¹
-.SH ½ñ¼°
+.SH 名前
+chdir, fchdir \- 作業ディレクトリの変更
+.SH 書式
.B #include <unistd.h>
.sp
.BI "int chdir(const char *" path );
.BI "int fchdir(int " fd );
.sp
.in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
.RB ( feature_test_macros (7)
-»²¾È):
+参照):
.in
.sp
.BR fchdir ():
_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
_XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
.br
-|| /* glibc 2.12 °Ê¹ß: */ _POSIX_C_SOURCE\ >=\ 200809L
+|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\ >=\ 200809L
.RE
.ad
.PD
-.SH ÀâÌÀ
+.SH 説明
.BR chdir ()
-¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) ¤ò¡¢
+は、呼び出し元プロセスの現在の作業ディレクトリ (current working directory) を、
.I path
-¤Ë»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤¹¤ë¡£
+に指定されたディレクトリに変更する。
.PP
.BR fchdir ()
-¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤È¤·¤Æ
-»ØÄꤵ¤ì¤ë°Ê³°¤Ï¡¢
+は、ディレクトリがオープンされたファイル・ディスクリプターとして
+指定される以外は、
.BR chdir ()
-¤ÈƱ¤¸¤Ç¤¢¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤¹¤ë¤È¡¢0 ¤òÊÖ¤¹¡£¼ºÇÔ¤¹¤ë¤È¡¢\-1 ¤òÊÖ¤·¡¢
+と同じである。
+.SH 返り値
+成功すると、0 を返す。失敗すると、\-1 を返し、
.I errno
-¤ËŬÀÚ¤ÊÃͤò¥»¥Ã¥È¤¹¤ë¡£
-.SH ¥¨¥é¡¼
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¤Ï¾¤Î¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë»ö¤¬¤¢¤ë¡£
+に適切な値をセットする。
+.SH ã\82¨ã\83©ã\83¼
+ファイルシステムによっては他のエラーが返される事がある。
.BR chdir ()
-¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë:
+で一般的なエラーを以下に挙げる:
.TP
.B EACCES
.I path
-¤Î¹½À®Í×ÁǤΤ¤¤º¤ì¤«¤Ë¸¡º÷µö²Ä (search permission) ¤¬¤Ê¤¤
+の構成要素のいずれかに検索許可 (search permission) がない
.RB ( path_resolution (7)
-¤â»²¾È¤¹¤ë¤³¤È)¡£
+も参照すること)。
.TP
.B EFAULT
-³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö³°¤ò
+割り当てられたアドレス空間外を
.I path
-¤¬»Ø¤·¤Æ¤¤¤ë¡£
+が指している。
.TP
.B EIO
-I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
+I/O エラーが発生した。
.TP
.B ELOOP
.I path
-¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
+を解決する際に遭遇したシンボリック・リンクが多過ぎる。
.TP
.B ENAMETOOLONG
.I path
-¤¬Ä¹²á¤®¤ë¡£
+が長過ぎる。
.TP
.B ENOENT
-¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¸ºß¤·¤Ê¤¤¡£
+そのディレクトリは存在しない。
.TP
.B ENOMEM
-¥«¡¼¥Í¥ë¤Ë½½Ê¬¤Ê¥á¥â¥ê¤¬¤Ê¤¤¡£
+カーネルに十分なメモリがない。
.TP
.B ENOTDIR
.I path
-¤Î¹½À®Í×ÁǤ¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¡£
+の構成要素がディレクトリではない。
.PP
.BR fchdir ()
-¤Ç°ìÈÌŪ¤Ê¥¨¥é¡¼¤ò°Ê²¼¤Ëµó¤²¤ë:
+で一般的なエラーを以下に挙げる:
.TP
.B EACCES
.I fd
-¤ò¥Ç¥£¥ì¥¯¥È¥ê¤È¤·¤Æ¥ª¡¼¥×¥ó¤¹¤ë¤¿¤á¤Î¸¡º÷µö²Ä¤¬¤Ê¤¤¡£
+をディレクトリとしてオープンするための検索許可がない。
.TP
.B EBADF
.I fd
-¤¬Å¬Àڤʥե¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤¤¡£
-.SH ½àµò
+が適切なファイル・ディスクリプターでない。
+.SH 準拠
SVr4, 4.4BSD, POSIX.1-2001.
-.SH Ãí°Õ
-¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ÁêÂХѥ¹Ì¾ (\(aq/\(aq) ¤Ç»Ï¤Þ¤Ã¤Æ¤¤¤Ê¤¤¥Ñ¥¹Ì¾) ¤ò
-²ò¼á¤¹¤ëºÝ¤Î³«»ÏÅÀ¤Ç¤¢¤ë¡£
+.SH 注意
+現在の作業ディレクトリは、相対パス名 (\(aq/\(aq) で始まっていないパス名) を
+解釈する際の開始点である。
.BR fork (2)
-¤ÇºîÀ®¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ï¡¢¿Æ¥×¥í¥»¥¹¤Î¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò
-·Ñ¾µ¤¹¤ë¡£
+で作成された子プロセスは、親プロセスの現在の作業ディレクトリを
+継承する。
.BR execve (2)
-¤ÎÁ°¸å¤Ç¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£
+の前後で、現在の作業ディレクトリは変更されない。
.BR fchdir ()
-¤Î¥×¥í¥È¥¿¥¤¥×¤¬Í¸ú¤Ë¤Ê¤ë¤Î¤Ï¡¢
+のプロトタイプが有効になるのは、
.B _BSD_SOURCE
-¤òÄêµÁ¤·¤¿¾ì¹ç¤«¡¢
+を定義した場合か、
.B _XOPEN_SOURCE
-¤òÃÍ 500 ¤ÇÄêµÁ¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+を値 500 で定義した場合のみである。
+.SH 関連項目
.BR chroot (2),
.BR getcwd (3),
.BR path_resolution (7)