| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > открытие файла |
| Автор: maxgray 6.5.2010, 21:32 | ||
| Как открыть для чтения в одно и тоже время один и тот же файл в 2-х скриптах? Если открываю так:
Файл читается первым скриптом. При открытии вторым - первый скрипт перестаёт выполнятся или же даёт некорректные результаты. flock мне поможет? Или куда глядеть? Буду благодарен за пример. |
| Автор: arto 6.5.2010, 22:41 |
| покажите код Добавлено через 13 минут и 52 секунды по крайней мере у меня дает корректные результаты: # cat > t aa bb cc ^D # perl -nle 'sleep 1; print "1: $_"' < t &; perl -nle 'sleep 1; print "2: $_"' < t & [1] 19552 [2] 19553 # 2: aa 1: aa 2: bb 1: bb 2: cc 1: cc # |
| Автор: maxgray 6.5.2010, 23:56 | ||
| Да всё просто здесь. Кусок, который работает с файлом:
$log_file порядка 30 мб, находится на сетевом диске. При открытии $log_file внешней программой во время работы скрипта всё ok, никто никому не мешает. Если такой же скрипт открывает $log_file с другого компьютера - первый (который начал выполняться раньше) вываливается с "Error! Can't open file \"$log_file\": $!\n" или даёт только часть результата. |
| Автор: arto 7.5.2010, 00:07 |
| значит у вас проблемы с файлом. |
| Автор: DurRandir 7.5.2010, 12:00 |
| open(LOGFILE, ... while(<LOG>) ... Либо вы НЕ привели тот код, что у вас не работает, либо он у вас работает совершенно случайно. |
| Автор: maxgray 7.5.2010, 12:06 | ||||
конечно же. |