sysopen FILEHANDLE, FILENAME, MODE, [PERMS]
FILENAME
で指定された名前を持つファイルをオープンして、FILEHANDLE
と結びつます。FILEHANDLE
に式を与えられた場合、その値をファイルハンドルの名前(またはファイルハンドルへのリファレンス)として扱います。この関数呼び出しはシステムのopen
関数をFILENAME
、MODE
、PERMS
の引数で呼び出すことを基礎としています。
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);