ファイル・タイプ

ファイルは、少なくとも 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 バイトです。

ファイルの処理

オペレーティング・システムには、ファイルを操作する多くのサブルーチンがあります。 最も一般的なファイル制御サブルーチンについては、次のセクションを参照してください。

ファイルの作成

ファイルの作成時に使用されるサブルーチンは、次のとおりです。
creat
新規ファイル、空のファイル、通常のファイルを作成します。
link
既存ファイルの追加の名前 (ディレクトリー・エントリー) を作成します。
mkdir
ディレクトリーを作成します。
mkfifo
名前付きパイプを作成します。
mknod
デバイスを定義するファイルを作成します。
open
O_CREAT フラグが設定されている場合に、新規ファイル、 空のファイルを作成します。
pipe
IPC を作成します。
socket
ソケットを作成します。

ファイルの操作 (プログラミング)

ファイルの操作に使用できるサブルーチンは、次のとおりです。
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 サブルーチンによって設定されている場合、 オープン・ファイルへデータを書き込みます。

ファイルシステムのタイプと特性の詳細については、「オペレーティング・システムおよびデバイスの管理」の『ファイルシステム』を参照してください。