Unix Programming with Perl by Kazuho Oku

ちょっと席が足りなかった。

エラーNO

ディレクトリが無いときにどうするか。
ディレクトリの存在チェックするだけでは不十分。
→ Errnoモジュールで判定しましょう。

$!とErrnoモジュールとの違い

$! は数字と判定すると数字が返り、文字と判定するとメッセージが返る
Errnoは システムのエラーナンバーを返す。

  • エラーナンバーを調べるには、manを使う。
$ man 2 mkdir

fork

forkはメモリをコピーする。
元のプロセスがもっていたファイルのロックを、新しいプロセスでも同じファイルのロックを見てしまう。
ファイルハンドラーなども、同じものを見てしまう。

防ぐには

ファイルはクローズしておくと良い。

Unix Signal

突然、ネットワークが止まる。
SIGPIPEにより、何かしら失敗したときに止まってしまう。

防ぐには

SIG{PIPE} = 'IGNORE'
をセットすれば良い。