.\" Updated 2005-02-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2008-08-10, Akihiro MOTOKI, LDP v3.05
.\"
-.\"WORD: temporary file °ì»þ¥Õ¥¡¥¤¥ë
-.\"WORD: read/write ¥ê¡¼¥É¡¿¥é¥¤¥È
-.\"WORD: permissions µö²Ä
+.\"WORD: temporary file 一時ファイル
+.\"WORD: read/write リード/ライト
+.\"WORD: permissions 許可
.\"
.TH MKSTEMP 3 2008-06-19 "GNU" "Linux Programmer's Manual"
-.SH ̾Á°
-mkstemp, mkostemp \- ¾¤È½Å¤Ê¤é¤Ê¤¤Ì¾Á°¤ò»ý¤Ä°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+mkstemp, mkostemp \- 他と重ならない名前を持つ一時ファイルを作成する
+.SH 書式
.nf
.B #include <stdlib.h>
.sp
.fi
.sp
.in -4n
-glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
+glibc 向けの機能検査マクロの要件
.RB ( feature_test_macros (7)
-»²¾È):
+参照):
.in
.sp
.BR mkstemp ():
.BR mkostemp ():
_GNU_SOURCE
\"O .SH DESCRIPTION
-.SH ÀâÌÀ
-´Ø¿ô
+.SH 説明
+関数
.BR mkstemp ()
-¤Ï°ú¿ô
+は引数
.I template
-¤«¤é¾¤È½Å¤Ê¤é¤Ê¤¤°ì»þ¥Õ¥¡¥¤¥ë̾¤òÀ¸À®¤·¡¢
-¤½¤Î¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤È¥ª¡¼¥×¥ó¤ò¹Ô¤¤¡¢
-¤½¤Î¥Õ¥¡¥¤¥ë¤ËÂФ¹¤ë¥ª¡¼¥×¥óºÑ¤ß¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
+から他と重ならない一時ファイル名を生成し、
+そのファイルの作成とオープンを行い、
+そのファイルに対するオープン済みのファイルディスクリプタを返す。
-°ú¿ô
+引数
.I template
-¤Ç»Ø¼¨¤¹¤ëʸ»úÎó¤Î¸å¤í¤Î 6 ʸ»ú¤Ï XXXXXX ¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¡£
-¤³¤ÎÉôʬ¤¬¥Õ¥¡¥¤¥ë̾¤ò¾¤È½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ëʸ»ú¤ÇÃÖ¤´¹¤¨¤é¤ì¤ë¡£
+で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。
+この部分がファイル名を他と重ならないようにする文字で置き換えられる。
.I template
-¤Ï½ñ¤´¹¤¨¤é¤ì¤ë¤¿¤á¡¢Ê¸»úÎóÄê¿ô¤Ç¤Ï¤Ê¤¯Ê¸»úÇÛÎó¤È¤·¤Æ
-Àë¸À¤¹¤ë¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+は書き換えられるため、文字列定数ではなく文字配列として
+宣言するようにしなければならない。
-¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0600 ¤ÇºîÀ®¤µ¤ì¡¢½êͼԤΤߤ¬Æɤ߽ñ¤²Äǽ¤Ç¤¢¤ë
-(glibc ¥Ð¡¼¥¸¥ç¥ó 2.06 °ÊÁ°¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ïµö²Ä¥â¡¼¥É 0666 ¤ÇºîÀ®¤µ¤ì¡¢
-Á´¤Æ¤Î¥æ¡¼¥¶¤¬Æɤ߽ñ¤²Äǽ¤Ç¤¢¤Ã¤¿)¡£
-ÊÖ¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤Ø¤ÎÆɤ߽ñ¤Î¾Êý¤Î¥¢¥¯¥»¥¹¤¬
-²Äǽ¤Ç¤¢¤ë¡£
-¸Æ¤Ó½Ð¤·¼Ô¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¥×¥í¥»¥¹¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ë¡¢
-¥Õ¥¡¥¤¥ë¤Ï
+ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である
+(glibc バージョン 2.06 以前では、ファイルは許可モード 0666 で作成され、
+全てのユーザが読み書き可能であった)。
+返されるファイルディスクリプタで、このファイルへの読み書き両方のアクセスが
+可能である。
+呼び出し者がそのファイルを作成するプロセスであることを保証するために、
+ファイルは
.BR open (2)
-¤Î
+の
.B O_EXCL
-¥Õ¥é¥°ÉÕ¤¤Ç¥ª¡¼¥×¥ó¤µ¤ì¤ë¡£
+フラグ付きでオープンされる。
.BR mkostemp ()
-¤Ï
+は
.BR mkstemp ()
-¤ÈƱÍͤÀ¤¬¡¢
+と同様だが、
.BR open (2)
-¤ËÅϤµ¤ì¤ë¥Õ¥é¥°
+ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\83\95ã\83©ã\82°
.RB O_APPEND ,
.B O_SYNC
-¤Ê¤É) ¤ò
+など) を
.I flags
-¤Ç»ØÄê¤Ç¤¤ëÅÀ¤¬°Û¤Ê¤ë
-.SH ÊÖ¤êÃÍ
-À®¸ù¤¹¤ë¤È¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï°ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢\-1 ¤òÊÖ¤·¡¢
+で指定できる点が異なる
+.SH 返り値
+成功すると、これらの関数は一時ファイルのファイルディスクリプタを返す。
+エラーの場合は、\-1 を返し、
.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
+を適切に設定する。
+.SH ã\82¨ã\83©ã\83¼
.TP
.B EEXIST
-¤¹¤Ç¤ËƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤¿¡£
-\fItemplate\fP ¤ÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£
+すでに同じ名前を持つファイルが存在した。
+\fItemplate\fP の内容は不定である。
.TP
.B EINVAL
-°ú¿ô \fItemplate\fP ¤Ç»Ø¼¨¤µ¤ì¤¿Ê¸»úÇÛÎó¤Î¸å¤í¤Î 6 ʸ»ú¤¬ XXXXXX ¤Ç¤Ê¤¤¡£
-\fItemplate\fP ¤ÎÆâÍƤÏÊѲ½¤·¤Ê¤¤¡£
+引数 \fItemplate\fP で指示された文字配列の後ろの 6 文字が XXXXXX でない。
+\fItemplate\fP の内容は変化しない。
.PP
-¤³¤ì¤é¤Î´Ø¿ô¤Ï
+これらの関数は
.BR open (2)
-¤Ë½ñ¤«¤ï¤ì¤Æ¤¤¤ë¥¨¥é¡¼¤Î¤¤¤º¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ë¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
+に書かわれているエラーのいずれかで失敗することもある。
+.SH バージョン
.BR mkostemp ()
-¤Ï glibc 2.7 °Ê¹ß¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£
-.SH ½àµò
+は glibc 2.7 以降で利用可能である。
+.SH 準拠
.BR mkstemp ():
4.3BSD, POSIX.1-2001.
.BR mkostemp ():
-glibc ¤Ë¤è¤ë³ÈÄ¥¡£
-.SH Ãí°Õ
-µö²Ä¥â¡¼¥É 0666 ¤Ç¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë¤È¤¤¤¦¸Å¤¤Æ°ºî¤Ï¡¢
-¥»¥¥å¥ê¥Æ¥£¾å¤Î¥ê¥¹¥¯¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£
-Æä˾¤Î Unix ¤Ç¤Ïµö²Ä¥â¡¼¥É¤È¤·¤Æ 0600 ¤ò»È¤¦¤¿¤á¡¢
-¥×¥í¥°¥é¥à¤ò°Ü¿¢¤¹¤ëºÝ¡¢¤³¤ÎºÙ¤«¤Ê°ã¤¤¤ò¸«Íî¤È¤¹²ÄǽÀ¤¬
-¤¢¤ë¤«¤é¤À¡£
+glibc による拡張。
+.SH 注意
+許可モード 0666 でファイルを作成するという古い動作は、
+セキュリティ上のリスクになる場合がある。
+特に他の Unix では許可モードとして 0600 を使うため、
+プログラムを移植する際、この細かな違いを見落とす可能性が
+あるからだ。
-¤è¤ê°ìÈÌŪ¤Ë¤Ï¡¢
+より一般的には、
.BR mkstemp ()
-¤Î POSIX µ¬Äê¤Ç¤Ï¥Õ¥¡¥¤¥ë¥â¡¼¥É¤Ë¤Ä¤¤¤Æ²¿¤â½Ò¤Ù¤Æ¤¤¤Ê¤¤¡£
-½¾¤Ã¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï
+の POSIX 規定ではファイルモードについて何も述べていない。
+従って、アプリケーションは
.BR mkstemp ()
-(¤ä
+(や
.BR mkostemp ())
-¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë¥Õ¥¡¥¤¥ë¥â¡¼¥ÉÀ¸À®¥Þ¥¹¥¯
+ã\82\92å\91¼ã\81³å\87ºã\81\99å\89\8dã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\83¢ã\83¼ã\83\89ç\94\9fæ\88\90ã\83\9eã\82¹ã\82¯
.RB ( umask (2)
-»²¾È) ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤Ù¤¤Ç¤¢¤ë¡£
+参照) が適切に設定されているか確認するべきである。
.BR mktemp ()
-¤Î¥×¥í¥È¥¿¥¤¥×Àë¸À¤Ï¡¢libc4, libc5, glibc1 ¤Ç¤Ï
+のプロトタイプ宣言は、libc4, libc5, glibc1 では
.I <unistd.h>
-¤Ë´Þ¤Þ¤ì¤ë; glibc2 ¤Ç¤Ï POSIX.1 ¤Ë½àµò¤·
+に含まれる; glibc2 では POSIX.1 に準拠し
.I <stdlib.h>
-¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+に含まれている。
+.SH 関連項目
.BR mkdtemp (3),
.BR mktemp (3),
.BR tempnam (3),