KAIHATSUGIKEN GROUP
************************************************************************************
27 UNIXの機能
*****************
ユニックスでのファイルオープン
open(F,"/etc/passwd");
openにはファイルハンドルとファイルのパス名を指定します。
Fがファイルハンドル"etc/passwd"がファイルのパスです。
openのパス名には先頭に記号をつけて入力なのか出力なのかを指定します。
例えば、
open(F,"<file")
の様にします。
読み込み "read"の"r"
書き込み "wright"の"w"
実行 "excute"の"e"
となります。
このモードは
open(F,r+<file")
open(F,w+<file")
となります。
ファイルオープンを失敗したら・・・
なんて事を試すのに使われるプログラムは
open(F,"$filename")or die("can't open: $filename\n");
です。
*********************
入力
ファイルから入力する場合はファイルから1行ずつ入力してそれをプリントする
プログラムを書きます。
$filename=/etc/passwd";
open(IN,"$filename")or die("can't open: $filename\n");
while(<IN>){
print;
}
close(IN);
ファイルハンドルを不等号で囲んで、<F>とすると、そのファイルハンドルから
1行入力します。
whileの条件の部分に<F>だけを書くと自動的に$_に代入されるのでそれをprintします。
***********************
出力
ファイルに出力するには、printやprintfでファイルハンドルを指定します。
例えば0から9までをファイルに書き出すプログラムは 次のようになります。
$filename="count";
open(OUT,">$filename")or die("can't open: $filename\n");
print($i=0; $i<10; $i++){
print OUT "$i\n";
}
openでファイルのパス名の前に「>」をつけて書き込み用としてオープンします。
そしてprint でファイルハンドルOUTを指定します。
OUTの後ろにはカンマをつけないことに注意して下さい。
*************************
クローズ
最後はクローズです。
クローズを書かなくともプログラムが終了するときに自動的にクローズしたりもしますが、
まあ、開けたものはしめるのが作法というものです。
**************************
ファイルの属性を調べる
$filenameが読めるかどうかを調べるには
if(-r $filename){
print"$filename is readable.\n";
}
となります。
-r や
-w や
-e などのように指定します。
そのほかに
chmod ファイルのモード(パーミッション)を変更する
chown ファイルの所有者、グループを変更する。
utime ファイルの最後にアクセスした時刻、最後に修正した時刻を変更する。
ファイル操作として
rename ファイル名を変更する
unlink ファイルを消す
link リンクする
symlink シンボリックリンクを作る
truncateファイルを指定した大きさに切りつめる
****************************************