Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Roman Chumakov                       2:5020/400     24 Oct 2000  22:26:35
 To : All
 Subject : Symbol::gensym()
 -------------------------------------------------------------------------------- 
 
 При использовании сабжа для открытия файлов , после, где-то, 2-х миллионов
 открытий-закрытий кончились иноды :(
 Сообщение на системной консоли такое:
 Oct 24 19:34:29 wwwu /kernel: pid 61218 (vi), uid 0 on /: out of inodes
 FreeBSD-4.1.1 256Mb памяти
 
 Суть действий выполнявшегося скрипта такая:
 1. открыть очередной (новый) файл.
 2. Поставить lock на него
 3. Записать данные
 4. Снять lock
 5. Закрыть файл
 (6. Перейти на шаг 1.)
 my $froot = "./filebase/";
 for($i1=0;$i1<20;$i1++){
  for($i2=0;$i2<20;$i2++){
   for($i3=0;$i3<20;$i3++){
    for($f=0;$f<1000;$f++){
        my $dir = $froot . "$i1/" . "$i2/" . "$i3/";
        my $fn = $dir . "$f.htm";
        my $text = "<html><body>$f</body></html>";
        mkpath( $dir );
        my $fh = Symbol::gensym();
       open ($fh,">${fn}") || die "Cannot open file ${fn} for writing";
       flock($fh, LOCK_EX);
       print $fh $text;
       flock($fh, LOCK_UN);
       close($fh);
    }
   }
  }
 }
 Видимо я неправильно использую Symbol::gensym()
 А как-же его использовать, чтобы иноды не кончились?
 
 Спасибо.
 Роман.
 --- ifmail v.2.15dev5
  * Origin: MTU-Intel ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Symbol::gensym()   Roman Chumakov   24 Oct 2000 22:26:35 
 Re: Symbol::gensym()   Vyacheslav Ignatyuk   25 Oct 2000 01:27:44 
Архивное /ru.perl/91049ec7c565.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional