|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : vitus@ice.ru 2:5020/400 26 Jan 2002 11:55:35 To : Yuriy Kaminskiy Subject : Re: Hа: Перл: длина скаляра $string -------------------------------------------------------------------------------- Yuriy Kaminskiy <Yuriy.Kaminskiy@p21.f517.n5020.z2.fidonet.org> wrote: YK> Hello, Konstantin! >>>>>> On 14:08 22/1/2002, tokar@apmsun.mpei.ac.ru writes: KT>> open (F, "<$mp3file") || die "can't open $mp3file\n"; binmode F; KT>> read F, $infile, -s $mp3file; YK> Плохо. YK> Потому, что read может прочитать _меньше_, чем заказано (да, в случае YK>с дисковыми файлами это, AFAIK, крайне маловероятно; но, AFAIK, все же YK>возможно). А по-моему, это случается как минимум один раз при чтении каждого файла. если читать не как тут описано, а поблочно. Последний блок будет неполным. Кстати, именно mp3 я бы рекомендовал читать именно поблочно, а то больно уж они здоровые бывают. KT>> close F; print $infile ..... KT>> или читать по 8K в цикле, для экономии памяти... YK> ... и пущей надежности: YK>while(read(F,(my $buffer),65536) {print $buffer} YK>-- YK>Yuriy Kaminskiy. YK>PS И про binmode STDOUT; забывать не стоит. -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488381569fa.html, оценка из 5, голосов 10
|