OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / draft / man3 / mkstemp.3
index 03674b4..427e046 100644 (file)
@@ -1,6 +1,7 @@
 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
 .\" and Copyright (C) 2008, Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%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.
@@ -20,6 +21,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" References consulted:
 .\"     Linux libc source code
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH MKSTEMP 3 2012\-04\-21 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1997 Kazuyuki Tanisako
+.\"         all rights reserved.
+.\" Translated 1997-05-17, Kazuyuki Tanisako <tanisako@osa.dec-j.co.jp>
+.\" Modified 1997-05-27, Kazuyuki Tanisako <tanisako@osa.dec-j.co.jp>
+.\" Modified 1998-02-05, Kazuyuki Tanisako <tanisako@osa.dec-j.co.jp>
+.\" Modified 1998-09-27, Kazuyuki Tanisako <tanisako@osa.dec-j.co.jp>
+.\" Modified 1999-04-10, Kazuyuki Tanisako <tanisako@osa.dec.com>
+.\" Updated 2001-01-17, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2005-02-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2008-08-10, Akihiro MOTOKI, LDP v3.05
+.\" Updated 2012-04-27, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2012-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH MKSTEMP 3 2014\-08\-19 GNU "Linux Programmer's Manual"
 .SH 名前
 mkstemp, mkostemp, mkstemps, mkostemps \- 他と重ならない名前を持つ一時ファイルを作成する
 .SH 書式
@@ -73,19 +90,21 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 \fBmkostemps\fP(): _GNU_SOURCE
 .SH 説明
 関数 \fBmkstemp\fP()  は引数 \fItemplate\fP から他と重ならない一時ファイル名を生成し、 そのファイルの作成とオープンを行い、
-そのファイルに対するオープン済みのファイルディスクリプタを返す。
\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«å¯¾ã\81\99ã\82\8bã\82ªã\83¼ã\83\97ã\83³æ¸\88ã\81¿ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
 
 引数 \fItemplate\fP で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。
 この部分がファイル名を他と重ならないようにする文字で置き換えられる。 \fItemplate\fP は書き換えられるため、文字列定数ではなく文字配列として
 宣言するようにしなければならない。
 
-ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である (glibc バージョン 2.06 以前では、ファイルは許可モード 0666
-で作成され、 全てのユーザが読み書き可能であった)。 返されるファイルディスクリプタで、このファイルへの読み書き両方のアクセスが 可能である。
-呼び出し者がそのファイルを作成するプロセスであることを保証するために、 ファイルは \fBopen\fP(2)  の \fBO_EXCL\fP
+ファイルは許可モード 0600 で作成され、所有者のみが読み書き可能である。返されるファイルディスクリプターで、このファイルへの読み書き両方のアクセスが
+可能である。 呼び出し者がそのファイルを作成するプロセスであることを保証するために、 ファイルは \fBopen\fP(2)  の \fBO_EXCL\fP
 フラグ付きでオープンされる。
 
-\fBmkostemp\fP() 関数は \fBmkstemp\fP() と同様だが、\fBopen\fP(2) に渡される
-フラグ O_APPEND\fB,\fP \fBO_SYNC\fP など) を \fIflags\fP で指定できる点が異なる
+.\" Reportedly, FreeBSD
+\fBmkostemp\fP() 関数は \fBmkstemp\fP() と同様だが、 \fIflags\fP に \fBO_APPEND\fP, \fBO_CLOEXEC\fP,
+\fBO_SYNC\fP のビットを指定できる点が異なる (意味は \fBopen\fP(2) と同じである)。ファイルを作成する際、 \fBmkostemp\fP()
+は \fBopen\fP(2) に渡す \fIflags\fP 引き数に \fBO_RDWR\fP, \fBO_CREAT\fP, \fBO_EXCL\fP を含める。そのため、
+\fBmkostemp\fP() に渡す \fIflags\fP 引き数にこれらの値を含める必要はなく、システムによってはエラーが発生する点に注意すること。
 
 \fBmkstemps\fP() 関数は \fBmkstemp\fP() と同様だが、 \fItemplate\fP 内の文字列に長さ
 が \fIsuffixlen\fP 文字の接尾辞 (suffix) が含まれる点が異なる。
@@ -95,7 +114,7 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 \fBmkostemps\fP() と \fBmkstemps\fP() の関係は、
 \fBmkostemp\fP() と \fBmkstemp\fP() の関係と同じである。
 .SH 返り値
-成功すると、これらの関数は一時ファイルのファイルディスクリプタを返す。 エラーの場合は、\-1 を返し、 \fIerrno\fP を適切に設定する。
\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\81¯ä¸\80æ\99\82ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¨ã\83©ã\83¼ã\81®å ´å\90\88ã\81¯ã\80\81\-1 ã\82\92è¿\94ã\81\97ã\80\81 \fIerrno\fP ã\82\92é\81©å\88\87ã\81«è¨­å®\9aã\81\99ã\82\8bã\80\82
 .SH エラー
 .TP 
 \fBEEXIST\fP
@@ -114,6 +133,9 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 .SH バージョン
 \fBmkostemp\fP() は glibc 2.7 以降で利用できる。
 \fBmkstemps\fP() と \fBmkostemps\fP() は glibc 2.11 以降で利用できる。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+関数 \fBmkstemp\fP(), \fBmkostemp\fP(), \fBmkstemps\fP(), \fBmkostemps\fP() はスレッドセーフである。
 .SH 準拠
 \fBmkstemp\fP(): 4.3BSD, POSIX.1\-2001.
 
@@ -123,19 +145,24 @@ _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOP
 
 \fBmkostemp\fP() と \fBmkostemps\fP(): glibc による拡張。
 .SH 注意
-許可モード 0666 でファイルを作成するという古い動作は、 セキュリティ上のリスク
-になる場合がある。 特に他の UNIX では許可モードとして 0600 を使うため、
-プログラムを移植する際、この細かな違いを見落とす可能性があるからだ。
+glibc バージョン 2.06 以前では、ファイルは許可モード 0666 で作成され、全てのユーザーが読み書き可能であった。この古い動作は、
+セキュリティ上のリスクになり得る。特に、他の UNIX では許可モードとして 0600
+を使うため、プログラムを移植する際、この細かな違いを見落とす可能性があるからだ。 POSIX.1\-2008 では、ファイルを許可モード 0600
+で作成することが必須要件として追加された。
 
+.\"
+.\" The prototype for
+.\" .BR mktemp ()
+.\" is in
+.\" .I <unistd.h>
+.\" for libc4, libc5, glibc1; glibc2 follows POSIX.1 and has the prototype in
+.\" .IR <stdlib.h> .
 より一般的には、 \fBmkstemp\fP()  の POSIX 規定ではファイルモードについて何も述べていない。 従って、アプリケーションは
 \fBmkstemp\fP()  (や \fBmkostemp\fP())  を呼び出す前にファイルモード生成マスク (\fBumask\fP(2)  参照)
 が適切に設定されているか確認するべきである。
-
-\fBmktemp\fP()  のプロトタイプ宣言は、libc4, libc5, glibc1 では \fI<unistd.h>\fP に含まれる;
-glibc2 では POSIX.1 に準拠し \fI<stdlib.h>\fP に含まれている。
 .SH 関連項目
 \fBmkdtemp\fP(3), \fBmktemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。