本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (A~M) > m

mktemp(3C)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

mktemp(), mkstemp() ― 一意なファイル名の生成

構文

#include <stdlib.h>

char *mktemp(char *template);

int mkstemp(char *template);

この関数は、旧製品との互換性およびアプリケーションの移植性を保つためのみに提供されています。移植性が重要な新しいアプリケーションの開発には、このコマンドの使用は推奨できません。 移植可能なアプリケーションには、代替として tmpfile() tmpfile(3S) を参照) を使用してください。

説明

mktemp() は、 template に示される文字列を一意のファイル名と置き換え、 template のアドレスを返します。 template の示す文字列は、 6 つの X が連続するファイル名です。 mktemp() は、連続する X を、1 つの文字と現在のプロセス ID で置換えます。 文字は、すでに存在するファイル名と重複しないように選択されます。 X が 6 個以下の場合は、文字部分がまず削られ、ついでプロセス ID の高位の桁が続けて削られます。

mkstemp() は、同様なテンプレートの置換えを行いますが、同時に一時ファイルを読み込みと書き込み用にオープンし、そのファイル記述子を返します。 そのため mkstemp() は、ファイルの存在のチェックおよびファイル使用のためのオープンが競合するのを防ぎます。

戻り値

mktemp() は文字を使いきった場合、空の文字列へのポインターを返し、それ以外の場合は、その引き数を返します。

mkstemp() は正常終了すると、開いているファイルの記述子を返します。 適当なファイルを作成できなかった場合は、-1 を返します。

警告

文字を使いきる可能性があります。

mktemp() および mkstemp() は、 template のファイル名の部分が、ファイル名の最大長を超えていないかどうかはチェックしません。

参照

getpid(2), open(2), tmpfile(3S), tmpnam(3S), thread_safety(5)

標準準拠

mktemp(): SVID2, SVID3, XPG2

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.