5部 関数リファレンス

sysopen

sysopen FILEHANDLE, FILENAME, MODE, [PERMS]



FILENAMEで指定された名前を持つファイルをオープンして、FILEHANDLEと結びつます。FILEHANDLEに式を与えられた場合、その値をファイルハンドルの名前(またはファイルハンドルへのリファレンス)として扱います。この関数呼び出しはシステムのopen関数をFILENAMEMODEPERMSの引数で呼び出すことを基礎としています。

MODEパラメータに使用できる値は、システム依存で、Fcntlライブラリモジュールによって提供されます。一般的には0は呼び出し専用、1は書き込み専用、2は読み書き可能を表します。
FILENAMEで指定されたファイルが存在せず、sysopenがそれを作成した場合には、PERMSの値が新たに作成されるファイルのパーミッションとなります。PERMSのデフォルト値は 0666で、全員に読み書きが許可されます。

MODEパラメータ パラメータの意味
O_RDONLY 読み取り専用
O_WRONLY 書き込み専用
O_RDWR 読み書き用
O_CREAT ファイルが存在しないとき作成する
O_EXCL ファイルが存在する場合はエラーにする
O_APPEND ファイルの終わりに追加する
O_TRUNC ファイルを上書きする
O_NONBLOCK 非ブロック方式のアクセス

ファイルを書き込み用にオープンしてから、必要に応じて新しいファイルを作成して、上書きする場合は次のように書きます。

sysopen( FH, $path, O_WRONLY|O_TRUNC|O_CREAT, 0600);

関連記事