open、openat、openx、openxat、 open64、 open64at、 open64x、 open64xat、creat、または creat64 サブルーチン

目的

読み取りまたは書き込みのためにファイルをオープンします。

構文

#include <fcntl.h>
int open (Path, OFlag [, Mode])
const char *Path;
int OFlag;
mode_t Mode;
int openat (DirFileDescriptor, Path, OFlag [, Mode])
int DirFileDescriptor;
const char *Path;
int OFlag;
mode_t Mode;
int openx (Path, OFlag, Mode, Extension)
const char *Path;
int OFlag;
mode_t Mode;
long Extension;
int openxat (DirFileDescriptor, Path, OFlag, Mode, Extension)
int DirFileDescriptor;
const char * Path;
int OFlag;
mode_t Mode;
long Extension;
int creat (Path, Mode)
const char *Path;
mode_t Mode;
int open64 (Path, OFlag [, Mode])
const char *Path;
int OFlag;
mode_t Mode;
int open64at (DirFileDescriptor, Path, 
OFlag [, Mode])
int DirFileDescriptor;
const char * Path;
int OFlag;
mode_t Mode;
int creat64 (Path, Mode)
const char *Path;
mode_t Mode;
int open64x (Path, OFlag, Mode, Extension)
char *Path;
int64_t OFlag;
mode_t Mode;
ext_t Extension;
int open64xat (DirFileDescriptor, Path, OFlag, Mode, Extension)
int DirFileDescriptor;
char *Path;
int64_t OFlag;
mode_t Mode;
ext_t Extension;

説明

DirFileDescriptorパラメータがAT_FDCWDであるか、Pathパラメータが絶対パス名である場合、openatサブルーチンはopenサブルーチンと等価である。 DirFileDescriptorているディレクトリの有効なファイル記述子であり、Pathが相対パス名である場合、Pathは、現在の作業ディレクトリではなく、DirFileDescriptorパラメータに関連付けられたディレクトリからの相対パスであるとみなされる。 同様に、openxatopen64atopen64xatサブルーチンは、openatや openと同様に、それぞれopenxopen64open64xサブルーチンと等価である。

openopenxcreatサブルーチンは、 Pathパラメータで指定されたファイルとファイル記述子との接続を確立する。 オープンされたファイルディスクリプタは、 readや writeなどの後続のI/Oサブルーチンによって、そのファイルにアクセスするために使用される。

openxサブルーチンは openサブルーチンと同じであるが、デバイス・ドライバ用に Extensionパラメータが追加されている。 creatサブルーチンは、O_WRONLY O_CREATO_TRUNCフラグが設定されたopenサブルーチンと等価である。

戻されるファイル記述子は、そのプロセス用に以前にオープンされていない最下位のファイル記述子です。 プロセスは、 最大オープン数 個を超えるファイル記述子を同時にオープンすることはできません。

ファイル内の現在位置にマークを付けるファイル・オフセットは、ファイルの先頭に設定されます。 新しいファイル記述子は、EXEC サブルーチン間でオープンしたままになるように設定されます。

open64サブルーチンとcreat64サブルーチンは、返されるファイル記述子に関連付けられたオープン・ファイル記述子にO_LARGEFILEフラグが設定される点を除いて、openサブルーチンとcreatサブルーチンと同等である。 このフラグにより、OFF_MAXより大きなファイルにアクセスできる。 呼び出し元がOFF_MAXより大きなファイルを開こうとし、O_LARGEFILEが設定されていない場合、オープンは失敗し、errno EOVERFLOWに設定される。

大容量ファイル対応プログラミング環境では、openopen64と再定義され、creatcreat64と再定義される。

open64xサブルーチンは、暗号化ファイル・システムEFS)内の暗号化ファイルを作成し、アクセスする。 open64xサブルーチンはopenxサブルーチンに似ているが、OFlagパラメータが64ビットに更新される点が異なる。

openatopenxatopen64at、またはopen64xatサブルーチンのDirFileDescriptorパラメータがO_SEARCHopen フラグなしでオープンされた場合、サブルーチンは、ディレクトリの現在のパーミッションを使用して、そのディレクトリでディレクトリ検索が許可されているかどうかを確認する。 ディレクトリがO_SEARCHオープン・フラグでオープンされた場合、サブルーチンはそのディレクトリのチェックを行わない。

パラメーター

項目 説明
DirFileDescriptor オープン・ディレクトリーのファイル・ディスクリプターを指定します。
パス オープンするファイルを指定します。 DirFileDescriptorが指定され、Path が相対パス名の場合、PathDirFileDescriptor で指定されたディレクトリからの相対パスとみなされる。
モード 作成されるファイル ( O_CREAT (作成) フラグによって要求される) の読み取り、書き込み、および実行の許可を指定します。 ファイルが既に存在する場合、このパラメーターは無視されます。 Modeパラメータは、<sys/modesys/mode.hファイルで定義されている以下の値の1つ以上を論理和することで構成される:
S_ISUID
実行ファイルのsetuid属性を有効にする。 このプログラムを実行するプロセスは、ファイルの所有者のアクセス権を獲得します。
S_ISGID
実行ファイルのsetgid属性を有効にする。 このプログラムを実行するプロセスは、ファイルのグループのアクセス権を獲得します。 また、ディレクトリーのグループ継承属性を使用可能にします。 このディレクトリーに作成されたファイルには、ディレクトリーのグループと等しいグループがあります。

以下の属性は、直接実行可能なファイルにのみ適用されます。 シェルスクリプトやawkスクリプトのような実行可能なテキストファイルに適用する場合は意味を持たない。

S_ISVTX
ディレクトリのlink/unlink属性を有効にする。 このディレクトリー内のファイルにリンクすることはできません。 ファイルをリンク解除できるのは、要求プロセスがディレクトリーに対する書き込み許可を持ち、ファイルの所有者またはディレクトリーのいずれかである場合のみです。
S_ISVTX
実行ファイルのテキスト保存属性を有効にする。 プログラムは使用後にマップ解除されません。
JENFMT
通常ファイルの適用モード・レコード・ロックを有効にします。 lockfサブルーチンで要求されたファイルロックは強制される。
S_IRUSR
ファイルの所有者にファイルの読み取りを許可します。
S_IWUSR
ファイルの所有者にファイルへの書き込みを許可します。
S_IXUSR
ファイルの所有者がファイルを実行する (またはディレクトリーを検索する) ことを許可します。
S_IRGRP
ファイルのグループにファイルの読み取りを許可します。
S_IWGRP
ファイルのグループに書き込みを許可します。
S_IXGRP
ファイルのグループがそれを実行する (またはディレクトリーを検索する) ことを許可します。
S_IROTH
他のユーザーにファイルの読み取りを許可します。
S_IWOTH
他のユーザーにファイルへの書き込みを許可します。
S_IXOTH
他のユーザーにファイルの実行 (またはディレクトリーの検索) を許可します。

mknodサブルーチンでは設定できるが、 chmodサブルーチンでは設定できない他のモード値も存在する。

拡張子 追加情報を必要とする、または追加状況を返すキャラクター・デバイス・ドライバーとの通信を提供します。 各ドライバーは、 拡張 パラメーターを値または通信域へのポインターとして、装置依存の方法で解釈します。 拡張 パラメーター値が 0 の場合、ドライバーは適切なデフォルトを適用する必要があります。
oflag アクセスのタイプ、特殊オープン処理、更新のタイプ、およびオープン・ファイルの初期状態を指定します。 パラメーター値は、特殊なオープン処理フラグを論理 OR することによって構成されます。 これらのフラグはfcntl.hファイルで定義されており、以下のフラグで説明されている。

アクセスタイプを指定するフラグ

以下の オフラッグ パラメーター・フラグ値は、アクセスのタイプを指定します。

項目 説明
O_RDONLY ファイルは読み取り専用にオープンされる。
O_WRONLY ファイルは書き込み専用にオープンされる。
O_RDWR ファイルは読み取りと書き込みの両方のためにオープンされます。
O_Search ディレクトリーは検索専用にオープンされます。 パス パラメーターが既存のディレクトリーを指していない場合、このフラグは無視されます。
注: ファイル・アクセス値の 1 つを指定する必要があります。 O_RDONLYO_WRONLY O_RDWRを一緒に使わないこと。 何も設定しないと、何も使用されず、結果は予測不能になります。

特別なオープン処理を指定するフラグ

以下の オフラッグ パラメーター・フラグ値は、特殊なオープン処理を指定します。

項目 説明
O_CREAT ファイルが存在する場合、 OCL (_EXCL) フラグの下に記載されている場合を除き、このフラグは効果がありません。 ファイルが存在しない場合は、以下の特性を持つ通常のファイルが作成されます。
  • ファイルの所有者 ID は、プロセスの有効ユーザー ID に設定されます。
  • 親ディレクトリにSetGroupID属性(S_ISGIDビット)が設定されていれば、ファイルのグループIDは親ディレクトリのグループIDに設定される。 それ以外の場合、ファイルのグループ ID は、呼び出しプロセスの有効グループ ID に設定されます。
  • ファイル許可および属性ビットは、 モード パラメーターの値に設定され、以下のように変更されます。
    • プロセス・ファイル・モード作成マスクに設定されたすべてのビットがクリアされます。 (ファイル作成マスクはumaskサブルーチンで説明されている)
    • ISVTX 属性ビットがクリアされます。

open64サブルーチンが「O_CREATフラグでファイルをオープンする場合、 ファイルが暗号化されたディレクトリまたは継承スキーマ内にあり、 呼び出し元のプロセスがオープンされたキーストアを持っていれば、 暗号化されたファイルを作成しなければならない。 これは、ランダムな対称ファイル暗号鍵を生成し、それをユーザーの公開鍵でラップし、ファイルのメタデータに格納する効果がある。

O_EFSON

O_CREATフラグとともに、このフラグは、EFSが有効になっているファイルシステムに、継承を上書きして暗号化ファイルを明示的に作成する。 この関数は'open64xサブルーチンで使用できる。

O_EFSOFF O_CREAT (作成) フラグとともに、このフラグは継承を明示的にオーバーライドして、暗号化されていないファイルを作成します。 この関数は'open64xサブルーチンで使用できる。
O_ ディレクトリー パス パラメーターがディレクトリーを指していない場合、サブルーチンは失敗します。
O_EXCL OCL (_EXCL) および O_CREAT (作成) フラグが設定されている場合、ファイルが存在するとオープンは失敗します。
注: O_EXCLフラグは、ネットワーク・ファイル・システムNFS)では完全にはサポートされていない。 NFSプロトコルは、O_EXCLフラグの設計機能を保証しない。
NSHARE (_N) プロセスがこのファイルをオープンしていないこと、および後続のオープンを妨げないことを保証します。 ファイルが物理ファイル・システム上にあり、既にオープンしている場合、 オフラッグ パラメーターに O_DELAY (Y) フラグも指定されていない限り、このオープンは失敗し、即時に戻ります。 このフラグは、物理ファイルシステムでのみ有効です。
注: このフラグは、 NFSではサポートされません。
O_RSHARE (_R) 書き込みのためにこのファイルをオープンしているプロセスがないこと、および書き込みのための後続のオープンを除外していることを保証します。 呼び出しプロセスは、書き込みアクセスを要求できます。 ファイルが物理ファイル・システム上にあり、 NSHARE (_N) フラグを使用して書き込みまたはオープンのためにオープンされている場合、このオープンは失敗し、 オフラッグ パラメーターに O_DELAY (Y) フラグも指定されていない限り、即時に戻ります。
注: このフラグは、 NFSではサポートされません。
O_RAW (W) 暗号鍵を保持せずにロー・モードで暗号化ファイルの読み取りまたは書き込みを行います。 この関数は'open64xサブルーチンで使用できる。
O_DEFER ファイルは据え置き更新用にオープンされます。 ファイルへの変更は、fsyncサブルーチン操作が実行されるまで、パーマネント・ストレージには反映されない。 fsyncサブルーチン操作が実行されない場合、ファイルが閉じられると変更は破棄される。
注: このフラグは NFS または JFS2ではサポートされず、フラグは無視されます。
注: このフラグにより、変更されたページはページング・スペースによってバッキングされます。 このフラグを使用する前に、十分なページング・スペースがあることを確認してください。
O_NOCTTY このフラグは、このオープン中に制御端末を割り当てないことを指定します。
O_TRUNC ファイルが存在しない場合、このフラグは無効です。 ファイルが存在し、通常のファイルであり、 O_RDWRフラグまたは O_WRONLYフラグで正常にオープンされた場合、以下のすべてが適用される:
  • ファイルの長さは 0 に切り捨てられます。
  • ファイルの所有者とグループは変更されません。
  • ファイルモードのSetUserID属性はクリアされる。
  • ファイルのSetUserID属性はクリアされる。
O_DIRECT このフラグは、このファイルがオープンされている間、そのファイルに対して直接入出力が使用されることを指定します。
O_CIO (O) このフラグは、ファイルのオープン中にそのファイルに対して並行入出力 (CIO) が使用されることを指定します。 並行読み取りプログラムと並行書き込みプログラムをインプリメントすると、直接入出力パスが使用されるため (ファイルシステム上でデータベースを実行する際のパフォーマンスを向上させるために、より具体的な要件があります)、このフラグは、2 つのオプションが同時に指定されている場合は 指示 (O_DIRECT) フラグをオーバーライドします。 読み取りまたは書き込みが行われるデータの長さとファイル・オフセットは、直接入出力として転送されるように、並行読み取りプログラムおよび並行書き込みプログラムによってページ位置合わせされなければなりません。

O_CIO (O) フラグは排他的です。 ファイルが他の方法 (例えば、 指示 (O_DIRECT) フラグを使用したり、ファイルを正常にオープンしたり) でオープンされると、そのオープンは失敗します。 O_CIO (O) フラグを使用してファイルをオープンし、別の方法でファイルをオープンする別のプロセスを使用してファイルをオープンすると、そのオープンは失敗します。 O_CIOフラグは、mmapサブルーチンとshmatサブルーチンによるファイルへのアクセスも阻止する。 mmapサブルーチンとshmatサブルーチンは、O_CIOフラグを使用してオープンされたファイルに対して使用された場合、EINVALを返す。

O_CIOR (R) このフラグは、ファイルのオープン中にそのファイルに対して並行入出力が使用されることを指定します。 このフラグはO_CIOと組み合わせてのみ使用できる。 さらに、このフラグは、別のプロセスがファイルを読み取り専用モードで開くことができることも指定します。 ファイルを開く他の方法はすべて失敗します。 このフラグは、open64x()インターフェイスでのみ使用可能である。 その他の種類のオープンでは、下位 32 ビットで定義されたフラグのみが許可されます。
O_ スナップショット 開かれているファイルに JFS2 スナップショットが含まれています。 このファイル記述子を使用した以降の読み取り呼び出しは、生のスナップショットブロックではなく、調理されたスナップショットを読み取ります。 スナップショットには、1 つのアクティブなオープン・ファイル記述子のみを持つことができます。 O_SNAPSHOTオプションは、外部スナップショットでのみ使用可能です。

オープン・サブルーチンは、以下の条件のいずれかが真であれば失敗となる:

  • ファイルは強制レコード・ロックをサポートしており、別のプロセスがファイルの一部をロックしています。
  • ファイルは物理ファイルシステム上にあり、 O_RSHARE (_R) フラグまたは NSHARE (_N) フラグを指定して既にオープンしています。
  • ファイルは書き込みアクセスを許可しません。
  • ファイルは既に据え置き更新用にオープンされています。

更新のタイプを指定するフラグ

プログラムは、書き込みアクセス用にオープンされた通常のファイルの更新をいつ永続的にするかについて、ある種の制御を要求することができます。 以下の オフラッグ パラメーター値は、実行される更新のタイプを指定します。

項目 説明
O_SYNC: 設定されている場合、通常のファイルへの更新とブロック・デバイスへの書き込みは同期更新です。 ファイル更新は、以下のサブルーチンによって実行されます。
  • クリア
  • ftruncate
  • O_TRUNC開く
  • write

同期更新を実行するサブルーチン ( 同期 (O_SYNC) フラグが設定されている場合は、先行するサブルーチンのいずれか) から戻るときに、ファイルが据え置き更新用にもオープンされている場合でも、ファイルのすべてのデータが永続記憶域に書き込まれていることがプログラムによって保証されます。

項目 説明
O_DSYNC: 設定されている場合、ファイル・データと、ファイル・データの取得に必要なすべてのファイル・システム・メタデータが、永続ストレージ・ロケーションに書き込まれます。 ファイル・データをリトリーブするためにアクセス時間や変更時間などのファイル属性は必要ありません。そのため、先行するサブルーチンが戻る前に永続ストレージ・ロケーションに書き込まれることは保証されません。 ( 同期 (O_SYNC) の説明にリストされているサブルーチン。)
o_sync | o_dsync: 両方のフラグが設定されている場合、ファイルのデータとファイルのすべてのメタデータ (アクセス時間を含む) が永続ストレージ・ロケーションに書き込まれます。
項目 説明
O_RSYNC: このフラグは、 同期 (O_SYNC) または 同期 (_SYNC)と組み合わせて使用され、書き込み操作の動作を読み取り操作に拡張します。 例えば、 同期 (O_SYNC)R_SYNC (同期) の両方が設定されている場合、ファイルのデータとファイルのすべてのメタデータ (アクセス時間を含む) が永続ストレージ・ロケーションに書き込まれるまで、読み取り操作は戻りません。

オープンファイルの初期状態を定義するフラグ

以下の オフラッグ パラメーター・フラグ値は、オープン・ファイルの初期状態を定義します。

項目 説明
O_APPEND ファイル・ポインターは、各書き込み操作の前にファイルの終わりに設定されます。
O_DELAY (Y) O_RSHAREフラグまたはO_NSHAREフラグによって要求される物理ファイルシステム上のアクセスを許可できないためにオープンサブルーチンが成功しなかった場合、プロセスがETXTBSYエラーコードを返す代わりにブロックすることを指定します。
O_NDELAY (Y) 遅延なしで開きます。
O_NONBLOCK オープン・サブルーチンがブロックされないように指定する。

O_NDELAYフラグとO_NONBLOCKフラグは、リードライトのサブルーチンが返す値以外は同じである。 これらのフラグは、プロセスがオブジェクトの状態でブロックするのではなく、通常のファイルまたはブロック・デバイスへの入力または出力でブロックすることを意味します。

O_DELAY (Y) フラグは、 NSHARE (_N) フラグまたは O_RSHARE (_R) フラグと一緒に使用された場合にのみ関係します。 これは、 O_NDELAY (Y) フラグおよび O_ 非ブロック フラグとは関係ありません。

OFlag パラメータ・フラグに関する一般的な注意事項

ファイルが O_DEFER (定義者) フラグを指定してオープンされている場合でも、 O_CREAT (作成) フラグの効果は即時に現れます。

NSHARE (_N) フラグまたは O_RSHARE (_R) フラグを使用して物理ファイル・システム上のファイルを開くときに、ファイルが競合するアクセスで既にオープンされている場合は、以下のことが発生する可能性があります。

  • O_DELAYフラグがクリア(デフォルト)の場合、オープン・サブルーチンは失敗する。
  • O_DELAYフラグがセットされている場合、オープン・サブルーチンは競合するオープンがなくなるまでブロックする。 O_DELAY (Y) フラグを使用するプロセスのデッドロック検出はありません。

NSHARE (_N) フラグを使用して既にオープンされている物理ファイル・システム上のファイルをオープンすると、以下のことが起こる可能性があります。

  • O_DELAY (Y) フラグがクリア (デフォルト) の場合、オープンは即時に失敗します。
  • O_DELAY (Y) フラグが設定されている場合、オープンは、競合するオープンがなくなるまでブロックします。

O_RDWR (R)O_ 手首のみ、または O_TRUNC (単位) フラグを指定してファイルを開いたときに、そのファイルが既に O_RSHARE (_R) フラグを指定して開かれている場合は、以下のようになります。

  • O_DELAY (Y) フラグがクリア (デフォルト) の場合、オープンは即時に失敗します。
  • O_DELAY (Y) フラグが設定されている場合、オープンは、競合するオープンがなくなるまでブロックします。

O_RDONLY (オドONLY) フラグを使用して先入れ先出し法 (FIFO) をオープンすると、次のようになります。

  • O_NDELAYフラグと O_NONBLOCKフラグがクリアされている場合、プロセスは書き込みのためにファイルをオープンするまで、オープンはブロックされる。 ファイルが(呼び出しプロセスによってであっても)すでに書き込みのためにオープンされている場合、openサブルーチンは遅滞なくリターンする。
  • O_NDELAY (Y) フラグまたは O_ 非ブロック フラグが設定されている場合、書き込み用に FIFO をオープンしているプロセスがない場合でも、オープンは即時に成功します。

O_ 手首のみ フラグを指定して FIFO をオープンすると、以下のことが起こる可能性があります。

  • O_NDELAY (Y) フラグと O_ 非ブロック フラグがクリアされている場合 (デフォルト)、プロセスが読み取りのためにファイルを開くまで、オープンはブロックされます。 ファイルが(呼び出しプロセスによってであっても)すでに書き込みのためにオープンされている場合、openサブルーチンは遅滞なくリターンする。
  • O_NDELAYフラグまたはO_NONBLOCKフラグがセットされている場合、openサブルーチンは、現在そのファイルを読み込みのためにオープンしているプロセスがなければエラーを返す。

非ブロッキング・オープンをサポートするブロック・スペシャル・ファイルまたはキャラクター・スペシャル・ファイル (端末装置など) をオープンすると、次のようになります。

  • O_NDELAY (Y) フラグと O_ 非ブロック フラグがクリアされている場合 (デフォルト)、装置が作動可能になるか使用可能になるまで、オープンはブロックされます。
  • O_NDELAYフラグまたはO_NONBLOCKフラグがセットされている場合、オープン・サブルーチンは、デバイスが準備完了または使用可能になるのを待たずにリターンする。 それ以降のデバイスの動作は、デバイス固有のものになります。

O_NDELAYO_RSHARE O_NSHAREO_DELAYフラグが特定のデバイスに及ぼす影響に関する追加情報は、そのデバイス・タイプに関連する特殊ファイルの記述に記載されています。

パスがSTREAMSファイルを参照する場合、oflag O_NONBLOCKORO_RDONLYO_WRONLY O_RDWRのいずれかから構成される。 他のフラグ値は STREAMS 装置 には適用されず、装置への影響はありません。 値 O_NONBLOCK は、 STREAMS ファイルと関連付けられたファイル記述子に 適用される特定の関数および STREAMS ドライバーに影響します。 STREAMS ドライバーの場合、 O_ 非ブロック の実装はデバイス固有のものです。

pathが擬似端子デバイスのコントローラ側を指定する場合、openがワーカー側をロックし、オープンできないようにするかどうかは不定である。 ポータブルアプリケーションは、ワーカー側を開く前にunlockptを呼び出さなければならない。

O_Search フラグの値は、 O_EXEC (_EXEC) フラグの値と同じです。 AIX® 7.1以降、 O_EXEC フラグをディレクトリー・オープンに渡したプログラムは失敗する可能性があります。これは、オープン・コードがディレクトリーの検索許可も検査するためです。

off_t型のオブジェクトで正しく表現できる最大の値が、オープン・ファイル記述におけるオフセットの最大値として設定される。

戻り値

正常終了すると、ファイル記述子 (負でない整数) が戻されます。 そうでない場合は-1が返され、ファイルは作成も変更もされず、エラーを示すerrnoグローバル変数が設定される。

エラー・コード

open、openat openxopenxatopen64open64atopen64xopen64xat creatサブルーチンは、以下の1つ以上が真である場合、失敗し、指定されたファイルはオープンされない:

項目 説明
EACCES 次の1つが起こっています。
  • ファイルが存在し、 オフラッグ パラメーターで指定されたアクセスのタイプが拒否されます。
  • パス パラメーターで指定されたパス接頭部のコンポーネントに対する検索許可が拒否されました。 セキュア・マウントが原因でアクセスが拒否された可能性があります。
  • ファイルが存在せず、作成するファイルの親ディレクトリーに対する書き込み許可が拒否されています。
  • O_TRUNC (単位) フラグが指定され、書き込み許可が拒否されます。
EAGAIN O_TRUNC (単位) フラグが設定され、指定されたファイルに別のプロセスが所有するレコード・ロックが含まれています。
EDQUOT ディレクトリーを含むファイル・システム内のディスク・ブロックまたは i ノードのユーザー割り当て量またはグループ割り当て量が使い尽くされたため、新規リンクのエントリーが置かれているディレクトリーを拡張できないか、i ノードをファイルに割り振ることができませんでした。
EEXIST O_CREAT (作成) フラグと OCL (_EXCL) フラグが設定され、指定されたファイルが存在します。
EFBIG プロセスのファイル制限または最大ファイル・サイズを超えるファイルの書き込みが試行されました。 ユーザーがプロセスの実行前に環境変数XPG_SUS_ENV=ONを設定していた場合、プロセスのファイル・サイズ制限を超えたときにSIGXFSZシグナルがプロセスにポストされる。
EINTR オープン・サブルーチン中にシグナルがキャッチされた。
EIO pathパラメータがSTREAMSファイル名で、ハングアップまたはエラーが発生した。
EISDIR 名前付きファイルはディレクトリーであり、書き込みアクセス権限が必要です ( オフラッグ パラメーターで O_ 手首のみ フラグまたは O_RDWR (R) フラグが設定されます)。
EMFILE プロセスごとのオープン・ファイル記述子のシステムしきい値 (最大オープン数) に既に達しています。
ENAMETOOLONG パス パラメーターの長さがシステムしきい値 (最大 PATH_MAX) を超えているか、パス名コンポーネントが 最大名 より長く、 _POSIX_NO_TRUNC が有効になっています。
ENFILE システム・ファイル・テーブルがいっぱいです。
ENOENT O_CREAT (作成) フラグが設定されておらず、指定されたファイルが存在しません。または、 O_CREAT (作成) フラグが設定されておらず、パス接頭部が存在しないか、 パス パラメーターが空ストリングを指しています。
ENOTDIR O_ ディレクトリー フラグが設定され、Path パラメーターが既存のディレクトリーを指していない。
ENOMEM パス パラメーターが STREAMS ファイルを指定していますが、システムはリソースを割り振ることができません。
ENOSPC 新規ファイルが入っているディレクトリーまたはファイル・システムを拡張することはできません。
ENOSR Path引数が STREAMS ベースのファイル名で、システムが STREAM を割り当てることができない。
ENOTDIR パス コンポーネントによって指定されたパス接頭部のコンポーネントがディレクトリーではありません。
ENXIO 次の1つが起こっています。
  • 指定されたファイルは文字特殊ファイルまたはブロック特殊ファイルであり, この特殊ファイルと関連した装置が存在していません。
  • 指定されたファイルは多重化されたスペシャル・ファイルであり、チャネル番号が有効範囲外であるか、または使用可能なチャネルがありません。
  • O_DELAYフラグまたは O_NONBLOCKフラグがセットされている、指定されたファイルがFIFOである、O_WRONLYフラグがセットされている、どのプロセスもそのファイルを読み込みのためにオープンしていない。
EOVERFLOW JFS2の 32 ビット・カーネルで、1 テラバイトより大きいファイルがオープンされました。 正確な最大サイズはMAX_FILESIZEで指定され、pathconfシステムコールを使って取得することができる。 それより大きいファイルは、32 ビット・カーネルでは開くことができませんが、64 ビット・カーネルでは作成して開くことができます。
EROFS 指定されたファイルは読み取り専用ファイル・システム上にあり、書き込みアクセス権限が必要です ( O_ 手首のみO_RDWR (R)O_CREAT (作成) (ファイルが存在しない場合)、または O_TRUNC (単位) フラグが オフラッグ パラメーターに設定されます)。
ETXTBSY ファイルが物理ファイルシステム上にあり、このオープンを排除する方法 ( O_RSHARE (_R) または NSHARE (_N) フラグを使用して) ですでにオープンされています。あるいは、 NSHARE (_N) または O_RSHARE (_R) フラグが O_NDELAY (Y) フラグ・セットを指定して要求されましたが、物理ファイルシステム上で競合するオープンがあります。
属性 このプロセスでは鍵ストアはロードされていません。
エサド 新規ファイルの所有者の鍵ストアに使用可能な鍵がありません。
項目 説明
EOVERFLOW openandcreatを呼び出したが、ファイルがすでに存在し、そのサイズがOFF_MAXより大きく、O_LARGEFILEフラグが設定されていなかった。

open openxopen64x creatサブルーチンは、以下のいずれかが真であれば失敗する:

項目 説明
EFAULT パス パラメーターが、プロセスの割り振り済みアドレス・スペースの外部を指しています。
EINVAL オフラッグ パラメーターの値が有効ではありません。
ELOOP パス パラメーターの変換中に検出されたシンボリック・リンクが多すぎます。
ETXTBSY パス パラメーターによって指定されたファイルは、現在実行中の純粋プロシージャー (共用テキスト) ファイルであり、 O_ 手首のみ または O_RDWR (R) フラグが オフラッグ パラメーターに設定されています。

openatopenxatopen64atopen64xatサブルーチンは、以下の1つ以上が真である場合、失敗し、指定されたファイルはオープンされない:

項目 説明
EACCES DirFileDescriptorパラメータが指すディレクトリがO_SEARCHフラグでオープンされておらず、ディレクトリの検索パーミッションが拒否されています。
EBADF Pathパラメータは絶対パスを指定しておらず、DirFileDescriptorパラメータはAT_FDCWDでも有効なファイル記述子でもない。
ENOTDIR Path パラメーターで絶対パスが指定されず、DirFileDescriptor パラメーターが AT_FDCWD でもディレクトリーに関連付けられているファイル・ディスクリプターでもない。