![]() |
Модераторы: ginnie, korob2001 |
![]() ![]() ![]() |
|
everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: 1 Всего: 4 |
Кто-нибудь расскажет мне, что такое flock, а то наивный автор учебника по Perl написал следующее:
flock файл, операция Системный вызов flock() видно, думая, что все такие чумовые и работают на Unix, но я кроме виндов ничем никогда не пользовался и по-этому в этой области не грамотный. Да, ещё в MS-DOS есть некий lock, который блокирует диск, обеспечивая прямой доступ к нему приложения, может быть они как-то связаны? И.. ещё - куда писать команды отладчика? И может быть учебник у кого-нибудь есть по-эффективнее, буду благодарен. --------------------
Что написал, то написал (Пилат) |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
Эта команда позволяет заблокировать файл на запись, пока ты с ним работаешь, чтобы не повредить данные при одновременном доступе.
|
|||
|
||||
GoodBoy |
|
||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
Точнее будет сказать, что эта команда позволяет заблокировать/разблокировать файл. И в Windows не работает.
Это сообщение отредактировал(а) GoodBoy - 29.3.2004, 10:33 |
||||
|
|||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Очень даже работает Вот пример, с помощью которого это можно проверить:
Теперь сохраним это дело в файл и откроем два окна командной строки, желательно уменьшить их так, что бы было видно оба окна одновременно. Теперь в первом окне вводим команду: C:\>perl имя_файла и сразу пишем тоже самое во втором окне. После не сложно заметить что в первом окне появилось приглашение для ввода строк, а во втором нет ничего - стоим в очереди. Теперь введём пару строк А затем введём quit или exit, при нажатии на enter наблюдаем за вторым окном. Как только вы нажмёте ВВОД, во втором окне появится приглашение програмы - подошла очередь. Все введённые строки будут записаны в файл base.txt в рабочем каталоге. Тоже можно проделать и с большим количеством окон, причём очередь не будет нарушена. Это сообщение отредактировал(а) korob2001 - 6.4.2004, 20:53 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
2 korob2001 маленькое уточнение, какой у тебя Windows то??? :-)))) В 98 и Линолеуме - однозначно работать не будет!!! И в NT/XP тоже скорее всего не заработает, если не NTFS...
|
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
У меня WinXP Pro, файловая система FAT-32
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: нет Всего: 83 |
Это хорошо, значит в XP уже есть поддержка flock'а. Когда я в последний раз пробовал воспользоваться этим в Винде (98 OSR2) тогда еще не работало... :-)))
|
|||
|
||||
everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: 1 Всего: 4 |
Да, спасибо вам, ещё бы немного и я бы свихнулся, я думал, что это из-за моей тупости а оказывается из-за виндов,..
![]() ![]() --------------------
Что написал, то написал (Пилат) |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
А у тебя какой Windows? Ты попробовал вышеприведённый пример? Если да, какой результат? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
everyone |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 24.3.2004 Репутация: 1 Всего: 4 |
Вышеприведённый не пробовал, как-то по-своему писал, но flock стопудово полностью функционален, запирает файл насмерть до конца программы или параметра LOCK_UN. У меня Win XP prof. sp1, но тогда, по-моему был 9X, соответственно - никакого эффекта не было. Это сообщение отредактировал(а) everyone - 1.10.2004, 22:32 --------------------
Что написал, то написал (Пилат) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |