|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yevgeny Manyashev 2:5020/400 25 Apr 2002 13:55:45 To : All Subject : Проблема при блоки ровке DBM файла --------------------------------------------------------------------------------
Программа в цикле пишет статистику в кучу DBM файлов -
один файл при каждом проходе.
Проблемы появились при блокировке этих файлов.
Я делаю вот что
Открываю DBM файл
my $db = tie %data, 'DB_File', "$data_file", O_CREAT|O_RDWR, 0666
or die "Don't tie to data file $data_file.\n";
Блокирую его
my $fd = $db->fd;
open( DB_FH, "+<&=$fd" ) or die "dup $!";
flock( DB_FH, LOCK_EX ) or "flock: $!";
Пишу данные
$data{"$foo"} = "$bar";
Затем снимаю блокировку и закрываю файл
flock(DB_FH, LOCK_UN);
undef $db;
untie %data;
close(DB_FH);
В общем, действую строго по man DB_File.
Потом в цикле точно также обрабатываются
следующие файлы.
Первый файл обрабатывается нормально,
при обработке второго вываливается ошибка
dup Bad file descriptor at ./script.pl line 223.
(строка open( DB_FH, "+<&=$fd" ) or die "dup $!";)
В чем проблема и как её обойти?
--
Best regards.
--- ifmail v.2.15dev5
* Origin: Sibnet (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3625902c1cc0.html, оценка из 5, голосов 10
|