OSDN Git Service

(split) LDP: Update release pages
[linuxjm/LDP_man-pages.git] / release / man3 / tmpnam.3
index f9bf958..9515d0e 100644 (file)
@@ -1,6 +1,6 @@
 .\" Copyright (c) 1999 Andries Brouwer (aeb@cwi.nl)
-.\" Japanese Version Copyright 1997 Tenkou N. Hattori <tnh@alpsmap.co.jp>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" 2003-11-15, aeb, added tmpnam_r
 .\"
-.\" Japanese Version Copyright (c) 1997 Tenkou N. Hattori
-.\"       all rights reserved.
-.\" Translated 1997-01-18, Tenkou N. Hattori <tnh@alpsmap.co.jp>
-.\" Updated 2000-03-15, Kentaro Shirakata <argrath@yo.rim.or.jp>
-.\" Updated 2005-03-15, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-07-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
+.\"*******************************************************************
 .\"
-.TH TMPNAM 3  2010-09-10 "" "Linux Programmer's Manual"
-.SH Ì¾Á°
-tmpnam, tmpnam_r \- °ì»þ¥Õ¥¡¥¤¥ë¤Î̾Á°¤òºîÀ®¤¹¤ë
-.SH ½ñ¼°
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TMPNAM 3 2013\-06\-21 "" "Linux Programmer's Manual"
+.SH 名前
+tmpnam, tmpnam_r \- 一時ファイルの名前を作成する
+.SH 書式
 .nf
-.B #include <stdio.h>
+\fB#include <stdio.h>\fP
 .sp
-.BI "char *tmpnam(char *" s );
+\fBchar *tmpnam(char *\fP\fIs\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-.BR tmpnam ()
-´Ø¿ô¤Ï¡¢¥Õ¥¡¥¤¥ë̾¤Ë»È¤¨¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
-¤¢¤ë»þÅÀ¤Ç¤ÏƱ¤¸Ì¾Á°¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤¬ÊÖ¤µ¤ì¤ë¤Î¤Ç¡¢
-ÍÄÃÕ¤Ê¥×¥í¥°¥é¥Þ¤Ï¤³¤Îʸ»úÎ󤬰ì»þ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ
-Ŭ¤·¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-°ú¤­¿ô
-.I s
-¤¬ NULL ¤Ê¤é¡¢¤³¤Î̾Á°¤ÏÆâÉô¤ÎÀÅŪ¥Ð¥Ã¥Õ¥¡¤ËºîÀ®¤µ¤ì¡¢
-¼¡¤Ë
-.BR tmpnam ()
-´Ø¿ô¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þ¤Ë¾å½ñ¤­¤µ¤ì¤ë¡£
-.I s
-¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢¥Õ¥¡¥¤¥ë̾¤Ï
-.I s
-¤¬»Ø¤¹ (¾¯¤Ê¤¯¤È¤â
-.I L_tmpnam
-¤ÎŤµ¤ò»ý¤Ä) Ê¸»úÇÛÎó¤Ë¥³¥Ô¡¼¤µ¤ì¡¢
-À®¸ù¤·¤¿¾ì¹ç¤Ï
-.I s
-¤¬ÊÖ¤µ¤ì¤ë¡£
+.SH 説明
+\fBtmpnam\fP()  関数は、ファイル名に使える文字列へのポインタを返す。 ある時点では同じ名前を持つファイルが存在しないファイル名が返されるので、
+幼稚なプログラマはこの文字列が一時ファイルのファイル名として 適していると考えるかもしれない。 引き数 \fIs\fP が NULL
+なら、この名前は内部の静的バッファに作成され、 次に \fBtmpnam\fP()  関数が呼び出された時に上書きされる。 \fIs\fP が NULL
+でなければ、ファイル名は \fIs\fP が指す (少なくとも \fIL_tmpnam\fP の長さを持つ) 文字配列にコピーされ、 成功した場合は \fIs\fP
+が返される。
+.LP
+作成されるパス名は、ディレクトリの部分に \fIP_tmpdir\fP が使われる。 (\fIL_tmpnam\fP と \fIP_tmpdir\fP は、以下で説明する
+\fBTMP_MAX\fP 同様 \fI<stdio.h>\fP で定義されている。)
+.SH 返り値
+\fBtmpnam\fP()  関数は一意な一時ファイル名へのポインタを返す。 一意なファイル名が作成できなかった場合は NULL を返す。
+.SH エラー
+エラーは定義されていない。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+The \fBtmpnam\fP()  function is thread\-safe with exceptions.  It is not
+thread\-safe if called with a NULL parameter.
 .LP
-ºîÀ®¤µ¤ì¤ë¥Ñ¥¹Ì¾¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÉôʬ¤Ë
-.I P_tmpdir
-¤¬»È¤ï¤ì¤ë¡£
-.RI ( L_tmpnam
-¤È
-.I P_tmpdir
-¤Ï¡¢°Ê²¼¤ÇÀâÌÀ¤¹¤ë
-.B TMP_MAX
-ƱÍÍ
-.I <stdio.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£)
-.SH ÊÖ¤êÃÍ
-.BR tmpnam ()
-´Ø¿ô¤Ï°ì°Õ¤Ê°ì»þ¥Õ¥¡¥¤¥ë̾¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
-°ì°Õ¤Ê¥Õ¥¡¥¤¥ë̾¤¬ºîÀ®¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
-.SH ¥¨¥é¡¼
-¥¨¥é¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-.SH ½àµò
-SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
-POSIX.1-2008 ¤Ï
-.BR tmpnam ()
-¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-.BR tmpnam ()
-´Ø¿ô¤ÏºÇÂç
-.B TMP_MAX
-²ó¤Þ¤Ç¡¢¸Æ¤Ó½Ð¤µ¤ì¤ëÅ٤˰ۤʤëʸ»úÎó¤òºîÀ®¤¹¤ë¡£
-.B TMP_MAX
-²ó°Ê¾å¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤½¤ÎÆ°ºî¤Ï¼ÂÁõ°Í¸¤Ç¤¢¤ë¡£
+The \fBtmpnam_r\fP()  function is thread\-safe.
+.SH 準拠
+SVr4, 4.3BSD, C89, C99, POSIX.1\-2001.  POSIX.1\-2008 は \fBtmpnam\fP()
+を廃止予定としている。
+.SH 注意
+\fBtmpnam\fP()  関数は最大 \fBTMP_MAX\fP 回まで、呼び出される度に異なる文字列を作成する。 \fBTMP_MAX\fP
+回以上呼び出された場合、その動作は実装依存である。
 .LP
-.BR tmpnam ()
-¤Ï¿ä¬¤¬Æñ¤·¤¤Ì¾Á°¤òÀ¸À®¤¹¤ë¤¬¡¢¤½¤ì¤Ë¤â¤«¤«¤ï¤é¤º¡¢
-.BR tmpnam ()
-¤¬¥Ñ¥¹Ì¾¤òÊÖ¤·¤Æ¤«¤é¡¢¥×¥í¥°¥é¥à¤¬¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë
-¤Þ¤Ç¤Î´Ö¤Ë¡¢ÊÌ¤Î¥×¥í¥°¥é¥à¤¬Æ±¤¸¥Ñ¥¹Ì¾¤Ç¡¢¥Õ¥¡¥¤¥ë¤ò
-.BR open (2)
-¤ÇºîÀ®¤·¤¿¤ê¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òºîÀ®¤·¤¿¤ê¤¹¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-¤³¤ì¤Ï¥»¥­¥å¥ê¥Æ¥£¥Û¡¼¥ë¤Ë¤Ä¤Ê¤¬¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-¤½¤Î¤è¤¦¤Ê²ÄǽÀ­¤ò²óÈò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
-.BR open (2)
-¤Î
-.B O_EXCL
-¥Õ¥é¥°¤ò»È¤Ã¤Æ¥Ñ¥¹Ì¾¤ò¥ª¡¼¥×¥ó¤¹¤ì¤Ð¤è¤¤¡£
-¤â¤Ã¤È¤¤¤¤¤Î¤Ï¡¢
-.BR mkstemp (3)
-¤ä
-.BR tmpfile (3)
-¤ò»È¤¦¤³¤È¤Ç¤¢¤ë¡£
+\fBtmpnam\fP()  は推測が難しい名前を生成するが、それにもかかわらず、 \fBtmpnam\fP()
+がパス名を返してから、プログラムがそのファイルをオープンする までの間に、別のプログラムが同じパス名で、ファイルを \fBopen\fP(2)
+で作成したり、シンボリックリンクを作成したりする可能性がある。 これはセキュリティホールにつながる可能性がある。 そのような可能性を回避するためには、
+\fBopen\fP(2)  の \fBO_EXCL\fP フラグを使ってパス名をオープンすればよい。 もっといいのは、 \fBmkstemp\fP(3)  や
+\fBtmpfile\fP(3)  を使うことである。
 .LP
-°Ü¿¢À­¤¬É¬Íפʡ¢¥¹¥ì¥Ã¥É¤ò»È¤Ã¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¡¢
-.B _POSIX_THREADS
-¤«
-.B _POSIX_THREAD_SAFE_FUNCTIONS
-¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¡¢
-.BR tmpnam ()
-´Ø¿ô¤ò NULL °ú¤­¿ô¤Ç¸Æ¤Ó½Ð¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+移植性が必要な、スレッドを使ったアプリケーションでは、 \fB_POSIX_THREADS\fP か
+\fB_POSIX_THREAD_SAFE_FUNCTIONS\fP が定義されている場合に、 \fBtmpnam\fP()  関数を NULL
+引き数で呼び出してはならない。
 .LP
-POSIX Áð°Æ¤Ç¤Ï¡¢´Ø¿ô
-.BR tmpnam_r ()
-¤ò»È¤¦¤³¤È¤òÄó°Æ¤·¤Æ¤¤¤ë¡£
-¤³¤Î´Ø¿ô¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢
-NULL ¤ò»È¤ï¤Ê¤¤¤è¤¦¤Ë¤È¤¤¤¦·Ù¹ð¤Î°ÕÌ£¤Ç NULL ¤òÊÌ°·¤¤¤·¤Æ¤¤¤ë¡£
+POSIX 草案では、関数 \fBtmpnam_r\fP()  を使うことを提案している。 この関数は、以下のように定義されており、 NULL
+を使わないようにという警告の意味で NULL を別扱いしている。
 .sp
 .nf
 .in +4n
@@ -134,23 +87,13 @@ tmpnam_r(char *s)
 .in
 .fi
 .sp
-¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢¤³¤Î´Ø¿ô¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤â¤¢¤ë¡£
-¤³¤Î´Ø¿ô¤Î glibc ¤Î¥×¥í¥È¥¿¥¤¥×¤ò
-.I <stdio.h>
-¤«¤éÆÀ¤ë¤Ë¤Ï¡¢
-(¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
-.B _SVID_SOURCE
-¤«
-.B _BSD_SOURCE
-¤òÄêµÁ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¡£
-.SH ¥Ð¥°
-·è¤·¤Æ¤³¤Î´Ø¿ô¤ò»È¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£Âå¤ï¤ê¤Ë
-.BR mkstemp (3)
-¤«
-.BR tmpfile (3)
-¤ò»È¤¦¤³¤È¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR mkstemp (3),
-.BR mktemp (3),
-.BR tempnam (3),
-.BR tmpfile (3)
+数は少ないが、この関数を実装しているシステムもある。 この関数の glibc のプロトタイプを \fI<stdio.h>\fP から得るには、
+(「どの」ヘッダファイルをインクルードするよりも前に)  \fB_SVID_SOURCE\fP か \fB_BSD_SOURCE\fP を定義しておく必要がある。
+.SH バグ
+決してこの関数を使ってはならない。代わりに \fBmkstemp\fP(3)  か \fBtmpfile\fP(3)  を使うこと。
+.SH 関連項目
+\fBmkstemp\fP(3), \fBmktemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。