Everything

 

long open(const char *name, long mode, long flg)


[説明]

-

第1引数のファイル名に対応するファイルを操作するための準備をします。

-

openルーチンでは、後で読み込み/書き出しを行うために、ファイルの種類(コンソール、プリンタ、ディスクファイル等)を決定しなければなりません。ファイルの種類は、以後openルーチンで返したファイル番号を用いて読み込み/書き出しを行うたびに参照する必要があります。

-

第2引数のmodeは、ファイルをオープンする時の処理の指定です。このデータの各ビットの意味について以下に示します。

表 8.3

openルーチンmodeビット説明

modeビット

説明

O_RDONLY (0ビット)

ビットが1のとき、ファイルを読み込み専用にオープン

O_WRONLY (1ビット)

ビットが1のとき、ファイルを書き出し専用にオープン

O_RDWR (2ビット)

ビットが1のとき、ファイルを読み込み、書き出し両用にオープン

O_CREAT (3ビット)

ビットが1のとき、ファイル名で示すファイルが存在しない場合にファイルを新規に作成

O_TRUNC (4ビット)

ビットが1のとき、ファイル名で示すファイルが存在する場合に

ファイルの内容を捨て、ファイルのサイズを0に更新

O_APPEND (5ビット)

次に読み込み/書き出しを行うファイル内の位置を設定

 ビットが0のとき:ファイルの先頭に設定

 ビットが1のとき:ファイルの最後に設定

 

modeで示したファイルの処理の指定と実際のファイルの性質が矛盾する場合はエラーにしてください。正常にファイルがオープンできた場合は、以後のread、write、lseek、closeルーチンで使用されるファイル番号(正の整数)を返してください。ファイル番号と実際のファイルの対応は低水準インタフェースルーチンで管理する必要があります。オープンに失敗した場合は-1を返してください。

[リターン値]

正常: 正常オープンしたファイルのファイル番号

異常: -1

[引数]

name ファイルのファイル名を指す文字

mode ファイルをオープンするときの処理の指定

flg ファイルをオープンするときの処理の指定(常に0777)