Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all 
      
    
名前
       mkstemp, mkostemp, mkstemps, mkostemps - 他と重ならない名前を持つ一時ファイルを作成する
書式
       #include <stdlib.h>
       int mkstemp(char *template);
       int mkostemp(char *template, int flags);
       int mkstemps(char *template, int suffixlen);
       int mkostemps(char *template, int suffixlen, int flags);
   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):
       mkstemp():
           _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200112L
       mkostemp(): _GNU_SOURCE
       mkstemps(): _BSD_SOURCE || _SVID_SOURCE
       mkostemps(): _GNU_SOURCE
説明
       関数 mkstemp()  は引数 template から他と重ならない一時ファイル名を生成し、 そのファイルの作成とオープンを
       行い、 そのファイルに対するオープン済みのファイルディスクリプターを返す。
       引数  template で指示する文字列の後ろの 6 文字は XXXXXX である必要がある。 この部分がファイル名を他と重な
       らないようにする文字で置き換えられる。 template は書き換えられるため、文字列定数ではなく文字配列として 宣
       言するようにしなければならない。
       ファイルは許可モード  0600   で作成され、所有者のみが読み書き可能である。返されるファイルディスクリプター
       で、このファイルへの読み書き両方のアクセスが  可能である。 呼び出し者がそのファイルを作成するプロセスであ
       ることを保証するために、 ファイルは open(2)  の O_EXCL フラグ付きでオープンされる。
       mkostemp() 関数は mkstemp() と同様だが、 flags に O_APPEND, O_CLOEXEC, O_SYNC  のビットを指定できる点が異
       なる  (意味は  open(2)  と同じである)。ファイルを作成する際、 mkostemp() は open(2) に渡す flags 引き数に
       O_RDWR, O_CREAT, O_EXCL を含める。そのため、 mkostemp() に渡す  flags  引き数にこれらの値を含める必要はな
       く、システムによってはエラーが発生する点に注意すること。
       mkstemps()  関数は mkstemp() と同様だが、 template 内の文字列に長さ が suffixlen 文字の接尾辞 (suffix) が
       含まれる点が異なる。 したがって、 template は prefixXXXXXXsuffix の形式となる。  文字列  XXXXXX  の部分は
       mkstemp() により更新される。
       mkostemps() と mkstemps() の関係は、 mkostemp() と mkstemp() の関係と同じである。
返り値
       成功すると、これらの関数は一時ファイルのファイルディスクリプターを返す。    エラーの場合は、-1   を返し、
       errno を適切に設定する。
エラー
       EEXIST すでに同じ名前を持つファイルが存在した。 template の内容は不定である。
       EINVAL mkstemp() と mkostemp() の場合: template の最後の 6 文字が XXXXXX でなかった。  この場合、template
              は変更されない。
              mkstemps()  と mkostemps() の場合: template の長さが (6 + suffixlen) 文字より短い、または template
              の接尾辞の直前の 6 文字が XXXXXX ではなかった。
       これらの関数は open(2) に書かれているエラーのいずれかで失敗することもある。
バージョン
       mkostemp() は glibc 2.7 以降で利用できる。 mkstemps() と mkostemps() は glibc 2.11 以降で利用できる。
属性
マルチスレッディング (pthreads(7) 参照) 関数 mkstemp(), mkostemp(), mkstemps(), mkostemps() はスレッドセーフである。
準拠
       mkstemp(): 4.3BSD, POSIX.1-2001.
       mkstemps(): 標準化されていないが、他のいくつかのシステムにも存在する。
       mkostemp() と mkostemps(): glibc による拡張。
注意
       glibc バージョン 2.06 以前では、ファイルは許可モード 0666  で作成され、全てのユーザーが読み書き可能であっ
       た。この古い動作は、 セキュリティ上のリスクになり得る。特に、他の UNIX では許可モードとして 0600 を使うた
       め、プログラムを移植する際、この細かな違いを見落とす可能性があるからだ。  POSIX.1-2008 では、ファイルを許
       可モード 0600 で作成することが必須要件として追加された。
       より一般的には、 mkstemp()  の POSIX 規定ではファイルモードについて何も述べていない。  従って、アプリケー
       ションは mkstemp()  (や mkostemp())  を呼び出す前にファイルモード生成マスク (umask(2)  参照) が適切に設定
       されているか確認するべきである。
関連項目
       mkdtemp(3), mktemp(3), tempnam(3), tmpfile(3), tmpnam(3)
この文書について
       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
GNU                                                2014-08-19                                         MKSTEMP(3)