ファイル・タイプ
ファイルは、少なくとも 1 つのハード・リンク (ファイル名) を持つバイトの配列です。 ファイルには ASCII 情報またはバイナリー情報を入れることができます。
ファイルには、データ、シェル・スクリプト、 またはプログラムが入ります。 ファイル名は、ソケット、パイプ、 およびデバイス・ドライバーなどの抽象的なオブジェクトを示すためにも使用することができます。
カーネルは、通常のファイル内のレコード境界を区別しません。したがって、プログラムは、独自の境界マーカーを設定することができます。
ファイルはジャーナル・ファイルシステム (JFS および JFS2) 内で、ディスク索引ノード (i ノード) によって示されます。 ファイルに関する情報 (所有権、アクセス・モード、アクセス時間、データ・アドレス、変更時間など) が i ノードに保管されます。
ジャーナル・ファイルシステムは、以下のファイル・タイプをサポートします。
ファイルのタイプ | mode.h で使用されるマクロ名 | 説明 |
---|---|---|
通常のファイル | S_ISREG | 1 つまたは複数の名前を持っている一連のバイト。 通常のファイルには ASCII データまたはバイナリー・データを入れることができます。 これらのファイルには、ファイル内の任意のバイトからランダムにアクセス (読み書き) することができます。 |
ディレクトリー | S_ISDIR | ディレクトリー・エントリー (ファイル名および i ノード番号) が入ります。 ディレクトリー・フォーマットはファイルシステムによって決定されます。 プロセスは通常のファイルと同様にディレクトリーを読みますが、 ディレクトリーへの書き込み権はカーネルが持っています。 サブルーチンの特殊なセットが、ディレクトリー・エントリーを制御します。 |
ブロック・デバイス | S_ISBLK | ファイル名を構造化デバイス・ドライバーに関連付けます。 |
キャラクター・デバイス | S_ISCHR | ファイル名を非構造化デバイス・ドライバーに関連付けます。 |
パイプ | S_ISFIFO | プロセス間通信 (IPC) チャネルを指定します。 mkfifo サブルーチンは名前付きパイプを作成します。 pipe サブルーチンは名前なしパイプを作成します。 |
シンボリック・リンク | S_ISLNK | 別のファイル名への絶対パス名または相対パス名が入っているファイル。 |
ソケット | S_ISSOCK | アプリケーションがデータを交換できるようにする IPC メカニズム。 socket サブルーチンがソケットを作成し、 bind サブルーチンがソケットに名前を付けられるようにします。 |
ラージ・ファイルが使用可能な JFS ファイルシステム内の通常のファイルの最大サイズは、 64 GB (68589453312) より少し小さくなっています。 ラージ・ファイルが使用可能なその他のファイルシステム、およびその他の JFS ファイルシステム・タイプでは、上記の表で「通常のファイル」としてリストされていないすべてのファイルの最大サイズは 2 GB - 1 (2147483647) です。 JFS2 におけるファイルの最大サイズは、 ファイルシステム自身のサイズによって限定されます。
JFS2 ファイルシステムのサイズのアーキテクチャー上の制限は、 252 バイト (つまり 4 ペタバイト) です。 64 ビット・カーネルでサポートされている最大ファイル・サイズは、 244 - 4096 バイト (つまり 16 テラバイトをちょうど下回るサイズ) です。
ファイル名の最大長は 255 文字で、 パス名の最大長は 1023 バイトです。
ファイルの処理
オペレーティング・システムには、ファイルを操作する多くのサブルーチンがあります。 最も一般的なファイル制御サブルーチンについては、次のセクションを参照してください。
ファイルの作成
ファイルの操作 (プログラミング)
- access
- ファイルのアクセス可能性を判別します。
- chmod
- ファイルのアクセス・モードを変更します。
- chown
- ファイルの所有権を変更します。
- close
- オープン・ファイル・ディスクリプター (ソケットを含む) をクローズします。
- fclear
- ファイル内にスペースを作成します。
- fcntl、dup、または dup2
- オープン・ファイル・ディスクリプターを制御します。
- fsync
- ファイル内の変更内容を永続記憶装置に書き込みます。
- ioctl
- スペシャル・ファイル、ソケット、 および termio 汎用端末インターフェースなどの汎用デバイス・サポートを含む、 オープン・ファイル・ディスクリプターに関連する関数を制御します。
- lockf または flock
- オープン・ファイル・ディスクリプターを制御します。
- lseek または llseek
- オープン・ファイルで入出力ポインター位置を移動します。
- open
- オープン済みのファイルを参照するために、 他のサブルーチンが使用したファイル・ディスクリプターを戻します。 open 操作は通常のファイルの名前を受け取り、ファイルから読み取るか、 ファイルに書き込むか、あるいはその両方を行うか示すアクセス権モードを受け取ります。
- read
- 適切な許可 (O_RDONLY または O_RDWR) が open サブルーチンによって設定されている場合、 オープン・ファイルからデータを取得します。
- rename
- ファイルの名前を変更します。
- rmdir
- ファイルシステムからディレクトリーを除去します。
- stat
- オーナーおよびアクセス・モードを含む、ファイルの状況を報告します。
- truncate
- ファイルの長さを変更します。
- write
- 適切な許可 (O_WRONLY または O_RDWR) が open サブルーチンによって設定されている場合、 オープン・ファイルへデータを書き込みます。
ファイルシステムのタイプと特性の詳細については、「オペレーティング・システムおよびデバイスの管理」の『ファイルシステム』を参照してください。