open、openat、openx、openxat、 open64、 open64at、 open64x、 open64xat、creat、または creat64 サブルーチン
目的
読み取りまたは書き込みのためにファイルをオープンします。
構文
#include <fcntl.h>
int DirFileDescriptor;
const char *Path;
int OFlag;
mode_t Mode;
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パラメータに関連付けられたディレクトリからの相対パスであるとみなされる。 同様に、openxat、open64at、open64xatサブルーチンは、openatや openと同様に、それぞれopenx、open64、open64xサブルーチンと等価である。
open、openx、creatサブルーチンは、 Pathパラメータで指定されたファイルとファイル記述子との接続を確立する。 オープンされたファイルディスクリプタは、 readや writeなどの後続のI/Oサブルーチンによって、そのファイルにアクセスするために使用される。
openxサブルーチンは openサブルーチンと同じであるが、デバイス・ドライバ用に Extensionパラメータが追加されている。 creatサブルーチンは、O_WRONLY、 O_CREAT、O_TRUNCフラグが設定されたopenサブルーチンと等価である。
戻されるファイル記述子は、そのプロセス用に以前にオープンされていない最下位のファイル記述子です。 プロセスは、 最大オープン数 個を超えるファイル記述子を同時にオープンすることはできません。
ファイル内の現在位置にマークを付けるファイル・オフセットは、ファイルの先頭に設定されます。 新しいファイル記述子は、EXEC サブルーチン間でオープンしたままになるように設定されます。
open64サブルーチンとcreat64サブルーチンは、返されるファイル記述子に関連付けられたオープン・ファイル記述子にO_LARGEFILEフラグが設定される点を除いて、openサブルーチンとcreatサブルーチンと同等である。 このフラグにより、OFF_MAXより大きなファイルにアクセスできる。 呼び出し元がOFF_MAXより大きなファイルを開こうとし、O_LARGEFILEが設定されていない場合、オープンは失敗し、errnoは EOVERFLOWに設定される。
大容量ファイル対応プログラミング環境では、openは open64と再定義され、creatは creat64と再定義される。
open64xサブルーチンは、暗号化ファイル・システムEFS)内の暗号化ファイルを作成し、アクセスする。 open64xサブルーチンはopenxサブルーチンに似ているが、OFlagパラメータが64ビットに更新される点が異なる。
openat、openxat、open64at、またはopen64xatサブルーチンのDirFileDescriptorパラメータがO_SEARCHopen フラグなしでオープンされた場合、サブルーチンは、ディレクトリの現在のパーミッションを使用して、そのディレクトリでディレクトリ検索が許可されているかどうかを確認する。 ディレクトリがO_SEARCHオープン・フラグでオープンされた場合、サブルーチンはそのディレクトリのチェックを行わない。
パラメーター
| 項目 | 説明 |
|---|---|
| DirFileDescriptor | オープン・ディレクトリーのファイル・ディスクリプターを指定します。 |
| パス | オープンするファイルを指定します。 DirFileDescriptorが指定され、Path が相対パス名の場合、PathはDirFileDescriptor で指定されたディレクトリからの相対パスとみなされる。 |
| モード | 作成されるファイル ( O_CREAT (作成) フラグによって要求される) の読み取り、書き込み、および実行の許可を指定します。 ファイルが既に存在する場合、このパラメーターは無視されます。 Modeパラメータは、<sys/modesys/mode.hファイルで定義されている以下の値の1つ以上を論理和することで構成される:
以下の属性は、直接実行可能なファイルにのみ適用されます。 シェルスクリプトやawkスクリプトのような実行可能なテキストファイルに適用する場合は意味を持たない。
|
| 拡張子 | 追加情報を必要とする、または追加状況を返すキャラクター・デバイス・ドライバーとの通信を提供します。 各ドライバーは、 拡張 パラメーターを値または通信域へのポインターとして、装置依存の方法で解釈します。 拡張 パラメーター値が 0 の場合、ドライバーは適切なデフォルトを適用する必要があります。 |
| oflag | アクセスのタイプ、特殊オープン処理、更新のタイプ、およびオープン・ファイルの初期状態を指定します。 パラメーター値は、特殊なオープン処理フラグを論理 OR することによって構成されます。 これらのフラグはfcntl.hファイルで定義されており、以下のフラグで説明されている。 |
アクセスタイプを指定するフラグ
以下の オフラッグ パラメーター・フラグ値は、アクセスのタイプを指定します。
| 項目 | 説明 |
|---|---|
| O_RDONLY | ファイルは読み取り専用にオープンされる。 |
| O_WRONLY | ファイルは書き込み専用にオープンされる。 |
| O_RDWR | ファイルは読み取りと書き込みの両方のためにオープンされます。 |
| O_Search | ディレクトリーは検索専用にオープンされます。 パス パラメーターが既存のディレクトリーを指していない場合、このフラグは無視されます。 |
特別なオープン処理を指定するフラグ
以下の オフラッグ パラメーター・フラグ値は、特殊なオープン処理を指定します。
| 項目 | 説明 |
|---|---|
| O_CREAT | ファイルが存在する場合、 OCL (_EXCL) フラグの下に記載されている場合を除き、このフラグは効果がありません。 ファイルが存在しない場合は、以下の特性を持つ通常のファイルが作成されます。
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フラグで正常にオープンされた場合、以下のすべてが適用される:
|
| 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: | 設定されている場合、通常のファイルへの更新とブロック・デバイスへの書き込みは同期更新です。 ファイル更新は、以下のサブルーチンによって実行されます。
同期更新を実行するサブルーチン ( 同期 (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_NDELAY、O_RSHARE、 O_NSHARE、O_DELAYフラグが特定のデバイスに及ぼす影響に関する追加情報は、そのデバイス・タイプに関連する特殊ファイルの記述に記載されています。
パスがSTREAMSファイルを参照する場合、oflagは O_NONBLOCKORO_RDONLY、O_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 openx、openxat、open64、open64at、open64x、open64xat、 creatサブルーチンは、以下の1つ以上が真である場合、失敗し、指定されたファイルはオープンされない:
| 項目 | 説明 |
|---|---|
| EACCES | 次の1つが起こっています。
|
| 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つが起こっています。
|
| 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、 openx、open64x、 creatサブルーチンは、以下のいずれかが真であれば失敗する:
| 項目 | 説明 |
|---|---|
| EFAULT | パス パラメーターが、プロセスの割り振り済みアドレス・スペースの外部を指しています。 |
| EINVAL | オフラッグ パラメーターの値が有効ではありません。 |
| ELOOP | パス パラメーターの変換中に検出されたシンボリック・リンクが多すぎます。 |
| ETXTBSY | パス パラメーターによって指定されたファイルは、現在実行中の純粋プロシージャー (共用テキスト) ファイルであり、 O_ 手首のみ または O_RDWR (R) フラグが オフラッグ パラメーターに設定されています。 |
openat、openxat、open64at、open64xatサブルーチンは、以下の1つ以上が真である場合、失敗し、指定されたファイルはオープンされない:
| 項目 | 説明 |
|---|---|
| EACCES | DirFileDescriptorパラメータが指すディレクトリがO_SEARCHフラグでオープンされておらず、ディレクトリの検索パーミッションが拒否されています。 |
| EBADF | Pathパラメータは絶対パスを指定しておらず、DirFileDescriptorパラメータはAT_FDCWDでも有効なファイル記述子でもない。 |
| ENOTDIR | Path パラメーターで絶対パスが指定されず、DirFileDescriptor パラメーターが AT_FDCWD でもディレクトリーに関連付けられているファイル・ディスクリプターでもない。 |