.\" Updated & Modified Sun Jan 9 23:28:11 JST 2005
.\" by Yuichi SATO <ysato444@yahoo.co.jp>
.\"
-.\"WORD: file system ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
-.\"WORD: link ¥ê¥ó¥¯
-.\"WORD: open ¥ª¡¼¥×¥ó
-.\"WORD: close ¥¯¥í¡¼¥º
-.\"WORD: symbolic link ¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯
-.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
-.\"WORD: socket ¥½¥±¥Ã¥È
-.\"WORD: device ¥Ç¥Ð¥¤¥¹
-.\"WORD: effective UID ¼Â¸ú¥æ¡¼¥¶¡¼ID
-.\"WORD: sticky-bit ¥¹¥Æ¥£¥Ã¥¡¼¡¦¥Ó¥Ã¥È
-.\"WORD: dangling symbolic link ²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯
-.\"WORD: memory ¥á¥â¥ê
-.\"WORD: protocol ¥×¥í¥È¥³¥ë
+.\"WORD: file system ファイルシステム
+.\"WORD: link ã\83ªã\83³ã\82¯
+.\"WORD: open オープン
+.\"WORD: close ã\82¯ã\83ã\83¼ã\82º
+.\"WORD: symbolic link ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯
+.\"WORD: descriptor ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼
+.\"WORD: socket ソケット
+.\"WORD: device ã\83\87ã\83\90ã\82¤ã\82¹
+.\"WORD: effective UID å®\9få\8a¹ã\83¦ã\83¼ã\82¶ã\83¼ID
+.\"WORD: sticky-bit スティッキー・ビット
+.\"WORD: dangling symbolic link å£\8aã\82\8cã\81\9fã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯
+.\"WORD: memory メモリ
+.\"WORD: protocol プロトコル
.\"
.TH UNLINK 2 2004-06-23 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-unlink \- ̾Á°¤òºï½ü¤·¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¤½¤ì¤¬»²¾È¤·¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤âºï½ü¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+unlink \- 名前を削除し、場合によってはそれが参照しているファイルも削除する
+.SH 書式
.B #include <unistd.h>
.sp
.BI "int unlink(const char *" pathname );
-.SH ÀâÌÀ
+.SH 説明
.BR unlink ()
-¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î̾Á°¤òºï½ü¤¹¤ë¡£
-¤â¤·¤½¤Î̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯ (link) ¤Ç¤¢¤ê¡¢
-¤É¤Î¥×¥í¥»¥¹¤â¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó (open) ¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢
-¥Õ¥¡¥¤¥ë¤Ïºï½ü¤µ¤ì¤ë¡£
-¥Õ¥¡¥¤¥ë¤¬»ÈÍѤ·¤Æ¤¤¤¿¥Ç¥£¥¹¥¯¾å¤ÎÎΰè¤ÏºÆÍøÍѤ¬²Äǽ¤Ë¤Ê¤ë¡£
+はファイルシステム上の名前を削除する。
+もしその名前がファイルへの最後のリンク (link) であり、
+どのプロセスもそのファイルをオープン (open) していなければ、
+ファイルは削除される。
+ファイルが使用していたディスク上の領域は再利用が可能になる。
-¤â¤·ºï½ü¤¹¤ë̾Á°¤¬¥Õ¥¡¥¤¥ë¤Ø¤ÎºÇ¸å¤Î¥ê¥ó¥¯¤À¤¬¡¢¤É¤ì¤«¤Î¥×¥í¥»¥¹¤¬
-¤½¤Î¥Õ¥¡¥¤¥ë¤ò¤Þ¤À¥ª¡¼¥×¥ó¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢
-¤½¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ëºÇ¸å¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼ (file descriptor)
-¤¬¥¯¥í¡¼¥º (close) ¤µ¤ì¤ë¤Þ¤Ç¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·Â³¤±¤ë¡£
+もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが
+そのファイルをまだオープンしている場合は、
+ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bæ\9c\80å¾\8cã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ (file descriptor)
+がクローズ (close) されるまでファイルは存在し続ける。
-¤â¤·¤½¤Î̾Á°¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯ (symbolic link) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð¡¢
-¥ê¥ó¥¯¤Ïºï½ü¤µ¤ì¤ë¡£
+もしその名前がシンボリック・リンク (symbolic link) を参照していれば、
+リンクは削除される。
-¤â¤·Ì¾Á°¤¬¥½¥±¥Ã¥È (socket) ¤ä fifo ¤ä¥Ç¥Ð¥¤¥¹ (device) ¤ò»²¾È¤·¤Æ¤¤¤ì¤Ð
-̾Á°¤Ïºï½ü¤µ¤ì¤ë¤¬¤½¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò¥ª¡¼¥×¥ó¤·¤Æ¤¤¤¿¥×¥í¥»¥¹¤Ï
-¤½¤ì¤ò»È¤¤Â³¤±¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤¹¡£¥¨¥é¡¼¤Ê¤é¤Ð \-1 ¤òÊÖ¤·¡¢
+もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば
+名前は削除されるがそのオブジェクトをオープンしていたプロセスは
+それを使い続けることができる。
+.SH 返り値
+成功した場合は 0 を返す。エラーならば \-1 を返し、
.I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+が適切に設定される。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EACCES
.I pathname
-¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î½ñ¤¹þ¤ßµö²Ä¤¬¥×¥í¥»¥¹¤Î¼Â¸ú (effective)
-¥æ¡¼¥¶¡¼ ID ¤ËÍ¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤¤«¡¢
+を含んでいるディレクトリの書き込み許可がプロセスの実効 (effective)
+ユーザー ID に与えられていないか、
.I pathname
-¤ÎÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¤É¤ì¤«¤Ë¸¡º÷µö²Ä¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Ê¤¤
+の中のディレクトリのどれかに検索許可が与えられていない
.RB ( path_resolution (7)
-¤â»²¾È¤¹¤ë¤³¤È)¡£
+も参照すること)。
.TP
-.BR EBUSY " (Linux °Ê³°)"
-¥Õ¥¡¥¤¥ë
+.BR EBUSY " (Linux 以外)"
+ファイル
.I pathname
-¤¬¥·¥¹¥Æ¥à¤Þ¤¿¤Ï¾¤Î¥×¥í¥»¥¹¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤Æ¤¤¤Æ
-¥ê¥ó¥¯¤¬ºï½ü¤Ç¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤Î¼ÂÁõ¤Ç¤Ï¥¨¥é¡¼¤È¤·¤¿¡£
+がシステムまたは他のプロセスによって使用されていて
+リンクが削除できなかったので、この実装ではエラーとした。
.TP
.B EFAULT
.I pathname
-¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤ò»Ø¤·¤Æ¤¤¤ë¡£
+がアクセス可能なアドレス空間の外を指している。
.TP
.B EIO
-I/O ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
+I/O エラーが発生した。
.TP
.B EISDIR
.I pathname
-¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£
-(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤Ãͤǡ¢Linux 2.1.132 °Ê¹ß¤ÇÊÖ¤µ¤ì¤ë¡£)
+がディレクトリを参照している。
+(これは POSIX で規定されていない値で、Linux 2.1.132 以降で返される。)
.TP
.B ELOOP
.I pathname
-¤ò²ò·è¤¹¤ëºÝ¤ËÁø¶ø¤·¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤¬Â¿²á¤®¤ë¡£
+を解決する際に遭遇したシンボリック・リンクが多過ぎる。
.TP
.B ENAMETOOLONG
-.IR pathname " ¤¬Ä¹²á¤®¤ë¡£"
+.IR pathname " が長過ぎる。"
.TP
.B ENOENT
.I pathname
-¤ËÂбþ¤¹¤ë¤â¤Î¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢²õ¤ì¤¿¥·¥ó¥Ü¥ê¥Ã¥¯¡¦¥ê¥ó¥¯¤Ç¤¢¤ë¤«¡¢
+に対応するものが存在しないか、壊れたシンボリック・リンクであるか、
.I pathname
-¤¬¶õ¤Ç¤¢¤ë¡£
+が空である。
.TP
.B ENOMEM
-½½Ê¬¤Ê¥«¡¼¥Í¥ë (kernel) ¤Î¥á¥â¥ê¡¼¤¬»ÈÍѤǤ¤Ê¤¤¡£
+十分なカーネル (kernel) のメモリーが使用できない。
.TP
.B ENOTDIR
.I pathname
-¤Î¥Ç¥£¥ì¥¯¥È¥êÉôʬ¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ê¤¤¡£
+のディレクトリ部分が、実際には、ディレクトリでない。
.TP
.B EPERM
-¥·¥¹¥Æ¥à¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤òµö²Ä¤·¤Æ¤¤¤Ê¤¤¡£
-¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ¹¤ë unlink Áàºî¤Î¤¿¤á¤ËɬÍפÊÆø¢¤ò
-¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤¬»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
-(¤³¤ì¤Ï POSIX ¤Çµ¬Äꤵ¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤ÎÊÖ¤·Êý¤Ç¤¢¤ë¡£
-¾å½Ò¤ÎÄ̤ꡢ¤³¤Î¾ì¹ç¤Ë¤Ï Linux ¤Ï
+システムがディレクトリに対する unlink 操作を許可していない。
+またはディレクトリに対する unlink 操作のために必要な特権を
+呼び出し元のプロセスが持っていない。
+(これは POSIX で規定されているエラーの返し方である。
+上述の通り、この場合には Linux は
.B EISDIR
-¤òÊÖ¤¹¡£)
+を返す。)
.TP
-.BR EPERM " (Linux ¤Î¤ß)"
-¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë unlink Áàºî¤òµö¤·¤Æ¤¤¤Ê¤¤¡£
+.BR EPERM " (Linux のみ)"
+ファイルシステムがファイルに対する unlink 操作を許していない。
.TP
-.BR EPERM " ¤Þ¤¿¤Ï " EACCES
+.BR EPERM " または " EACCES
.I pathname
-¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¹¥Æ¥£¥Ã¥¡¼¡¦¥Ó¥Ã¥È (sticky-bit)
+を含んでいるディレクトリにスティッキー・ビット (sticky-bit)
.RB ( S_ISVTX )
-¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºï½ü¤·¤è¤¦¤È¤¹¤ë¥Õ¥¡¥¤¥ë¤Î
-UID ¤Ç¤â¤½¤ì¤ò´Þ¤ó¤Ç¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¤â¤Î¤Ç¤â¤Ê¤¯¡¢
-¤«¤Ä¥×¥í¥»¥¹¤ËÆø¢¤¬¤Ê¤¤ (Linux ¤Ç¤Ï
+が設定されていて、プロセスの実効ユーザー ID が削除しようとするファイルの
+UID でもそれを含んでいるディレクトリのものでもなく、
+かつプロセスに特権がない (Linux では
.B CAP_FOWNER
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤¬¤Ê¤¤)¡£
+ケーパビリティ (capability) がない)。
.TP
.B EROFS
.I pathname
-¤¬Æɤ߹þ¤ßÀìÍѤΥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤ë¡£
-.SH ½àµò
+が読み込み専用のファイルシステムのファイルを参照している。
+.SH 準拠
SVr4, 4.3BSD, POSIX.1-2001.
-.\" SVr4 ¤Ë¤Ï¾¤Ë EINTR, EMULTIHOP, ETXTBSY, ENOLINK ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Î
-.\" µ½Ò¤¬¤¢¤ë¡£
-.SH ¥Ð¥°
-NFS ¥×¥í¥È¥³¥ë (protocol) ¤ÎÀøºßŪ¤ÊÉÔÎɤˤè¤ê¡¢
-¤Þ¤À»ÈÍÑÃæ¤Î¥Õ¥¡¥¤¥ë¤ÎÆÍÁ³¤Î¾ÃÌǤò°ú¤µ¯¤³¤¹¤³¤È¤¬¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+.\" SVr4 には他に EINTR, EMULTIHOP, ETXTBSY, ENOLINK エラーについての
+.\" 記述がある。
+.SH ã\83\90ã\82°
+NFS プロトコル (protocol) の潜在的な不良により、
+まだ使用中のファイルの突然の消滅を引き起こすことがある。
+.SH 関連項目
.BR rm (1),
.BR chmod (2),
.BR link (2),