readとsysreadはどの様に使い分けるの?

[上に] [前に] [次に]
mstk 1999/07/30(金) 18:06:16
perlのreadとsysreadはバッファリングするかしないかという違いがあるそうですが、いままで自分で組んだperlのCGIの中では、readしか使ったことがありません。
この両者は実際にどのような場面で使い分ければいいのでしょうか?
select(STDOUT); $| = 1; して read するのと
sysreadを使うのは違うのでしょうか?

うふ! 1999/07/30(金) 23:32:42
ものの本によればなんですけど(すいません・・引用で・・)
perlのsysyreadはC言語のreadに相当して、
perlのsyswriteはC言語のwriteに相当する。

perlのreadはC言語のfreadに相当する
perlのprintはC言語のfwriteに相当する

どうやら、ファイルの中の指定位置から一部を読み込んだり、
一部を書き換えたりといったバッファリグされると困る操作のときは
sysread,syswrite,seekを利用した操作が適していて、
通常、丸々ファイルを読み込むときはreadが良いという事・・かな??

mstk 1999/08/03(火) 00:11:45
たまたまperlfaqを読んでいたところ、
Why can't my script read from STDIN after I gave it
EOF (^D on Unix, ^Z onMS-DOS)?
「なぜEOF(UNIXの^D、MSーDOSの^Z) を受け取った後では
STDINから読み込むことができない? 」
という項目の一番解答の最後でreadじゃなくて
sysreadを使えと書いてあるのでsysreadならEOFがあっても、
読み込めるという違いがあるののかも?
あとで試してみます。

[上に] [前に] [次に]