![]() |
構文 |
|
sysopen ファイル・ハンドル, ファイル名, MODE sysopen ファイル・ハンドル, ファイル名, MODE, パーミッション |
MODE | O_RDONLY | 読み取り専用 |
O_WRONLY | 書き込み専用 |
|
O_RDWR | 読み書き用 |
|
O_CREAT | ファイルが存在しない場合に作成する |
|
O_EXCL | ファイルが存在する場合にエラーにする |
|
O_APPEND | 追記書き込み |
|
O_TRUNC | 上書き |
|
O_NONBLOCK | 非ブロック方式のアクセス |
返り値 |
|
ファイル・オープンに成功した場合に真 |
説明
- ファイル名で指定されたファイルをオープンして,ファイル・ハンドルを結びつけます。
- MODEでファイル・オープンのモードを指定します。Fcntlモジュールに上記MODEの値が定義されています。
- パーミッションの省略時は0666になります。
使用例
#!/usr/bin/perl
use strict;
use warnings;
use Fcntl;
my $file = 'data.txt';
sysopen my $fh, $file, O_RDONLY or die "$!:$file";
while (my $line = <$fh>) {
print $line;
}
close $fh;
#!/usr/bin/perl
use strict;
use warnings;
use Fcntl;
my $file = 'makedata.txt';
sysopen my $fh, $file, O_WRONLY|O_CREAT|O_TRUNC or die "$!:$file";
print $fh "create data.\n";
close $fh;
#!/usr/bin/perl
use strict;
use warnings;
use Fcntl;
my $file = 'makedata.txt';
my $mask = umask 0; # umaskを無効にする
sysopen my $fh, $file, O_WRONLY|O_CREAT|O_EXCL, 0666 or die "$!:$file";
print $fh "create data.\n";
close $fh;
umask $mask;