sysopen


sysopen FILEHANDLE, FILENAME, MODE
sysopen FILEHANDLE, FILENAME, MODE, PERMS

 FILENAMEで指定されたファイルをオープンし、FILEHANDLEを結びつけます。
 MODEでファイルオープンのモードを指定します。Fcntlに後述の値が定義されています。
 PERMSはパーミッションです。省略時は0666になります。
MODE 説明
O_RDONLY 読み取り専用
O_WRONLY 書き込み専用
O_RDWR 読み書き用
O_CREAT ファイルが存在しない場合に作成する
O_EXCL ファイルが存在する場合にエラーにする
O_APPEND 追記書き込み
O_TRUNC 上書き
O_NONBLOCK 非ブロック方式のアクセス
 open関数との対応は以下のようになります。
open sysopen
open(my $fh, "<", $filename); sysopen(my $fh, $filename, O_RDONLY);
open(my $fh, ">", $filename); sysopen(my $fh, $filename, O_WRONLY | O_TRUNC | O_CREAT);
open(my $fh, ">>", $filename); sysopen(my $fh, $filename, O_WRONLY | O_APPEND | O_CREAT);

サンプルプログラム

use Fcntl;

my $filename = "test.txt";
sysopen(my $fh, $filename, O_WRONLY | O_TRUNC | O_CREAT) or die $!;
print $fh "sysopen test.\n";
close $fh;

関連項目

・close関数
open関数