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

creat(2)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

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

 ≫ 目次

 ≫ 索引

名称

creat ― 新しいファイルの作成、または既存のファイルの書直し

構文

#include <fcntl.h>

int creat(const char *path, mode_t mode);

説明

creat() システムコールは、パス名 path で指定された通常のファイルを新規作成します。または 既存のファイルを書き直す準備をします。

ファイルが存在する場合は、ファイルの長さは 0 に切り捨てられますが、 モードと所有者は変更されません。 ファイルが存在しない場合は、ファイルの所有者 ID は、プロセスの実効ユーザー ID がセットされます。 親ディレクトリのセットグループ ID ビットがセットされた場合は、ファイルのグループ ID に親ディレクトリのグループ ID がセットされます。 それ以外の場合は、ファイルのグループ ID にプロセスの有効グループ ID がセットされます。 ファイルモードの下位 12 ビットには、次のように修正された mode の値がセットされます。

  • プロセスのファイルモード作成マスクでセットされたすべてのビットは、 クリアされます umask(2)参照)。

  • モードの「実行後テキストイメージのセーブ」ビットは、クリアされます chmod(2)参照)。

64 ビットモードでシステムコールが呼び出されると、 O_LARGEFILE ステータスフラグが自動的にセットされます (fcntl(5) または open(2) を参照)。

正常終了すると、ファイル記述子を返し、 mode が書込みを許可していない場合でも、書込み用 (専用) のファイルを開きます。 ファイルのオフセットは、ファイルの先頭にセットされます。 ファイル記述子は、 exec*() システムコールを実行した後も開かれたままです fcntl(2) 参照)。 各プロセスが同時に開くことのできるファイルの数には制限があります。 開くことのできるファイルの制限については、 getrlimit(2) を参照してください。 open(2) も参照してください。 書込み禁止モードの新しいファイルを作成することもできます。

アクセス制御リスト (ACL) - HFS ファイルシステムのみ

アクセス制御リストをサポートしているシステムでは、 ファイルアクセス パーミッションビットに応じて 3 つの基本 ACL エントリーが作成されます。 既存ファイルのアクセス制御リストは、 creat() では変更されません setacl(2)chmod(2)、 および acl(5) 参照)。

戻り値

creat() は、次の値を返します。

 n 

正常終了。 n はファイル記述子の値です。 n は負でない整数です。

-1 

異常終了。 エラーを示す値が errno にセットされます。

エラー

creat() が異常終了した場合、次の値の 1 つが errno にセットされます。

EACCES 

パスプリフィックスの構成要素がサーチパーミッションを拒否された場合

EACCES 

ファイルが存在しておらず、ファイルを作成するディレクトリが書込みを 許可していない場合

EACCES 

ファイルが存在しており、書込みパーミッションが拒否された場合

EAGAIN 

ファイルが存在しており、強制モードファイルとレコードロックが セットされており、ファイルのレコードロックが解除されていない場合

EDQUOT 

ファイルシステムのユーザーのディスク割当てブロックまたは i ノードの限界に 達した場合

EFAULT 

path がプロセスに割り当てられたアドレス空間の外側を指している場合。 このエラーが発見できるかどうかは、実現方法に依存しています。

EISDIR 

指定されたファイルが既存のディレクトリである場合

ELOOP 

パス名にたどったシンボリックリンクが多すぎる場合

EMFILE 

ファイル記述子の最大値を超えるファイルが開かれている場合

ENAMETOOLONG 

_POSIX_NO_TRUNC が有効なときに、 指定されたパス名の長さが PATH_MAX バイトを超えている場合、またはパス名の構成要素の長さが NAME_MAX バイトを超えている場合

ENFILE 

システム ファイルテーブルがいっぱいである場合

ENOENT 

指定されたファイルが存在していない場合 path が null である場合、または path の構成要素が存在していない場合)

ENOSPC 

ファイルシステムに十分な領域がない場合

ENOTDIR 

パスプリフィックスの構成要素がディレクトリでない場合

ENXIO 

指定されたファイルがキャラクタ型特殊ファイルかブロック型特殊ファイルで、 この特殊ファイルに関連するデバイスが存在していない場合

EOVERFLOW 

指定されたファイルが通常のファイルで、そのファイルのサイズを off_t 型のオブジェクトで正確に示すことができない場合

EROFS 

指定されたファイルが読取り専用ファイルシステム上にある場合

ETXTBSY 

ファイルが実行中のピュアプロシジャ (共有テキスト) ファイルである場合

参照

chmod(2), close(2), creat64(2), dup(2), fcntl(2), lockf(2), lseek(2), open(2), open64(2), read(2), setacl(2), truncate(2), umask(2), write(2), acl(5),aclv(5)

標準準拠

creat(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1

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