The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Экслюзивный доступ к файлам (mandatory locks) (lock file threads example)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: lock, file, threads, example,  (найти похожие документы)
Date: Mon, 1 Oct 2001 12:09:45 +0000 (UTC) From: Maxim Zakharov <maxime@sochi.com> Newsgroups: fido7.ru.unix.prog Subject: Экслюзивный доступ к файлам (mandatory locks) > в пpинципе в single thread можно и полочить. но где есть > mandatory locks ? :( > Я остановился вот на таком наборе примитивов. Какие есть подводные камни в этом ? #include <fcntl.h> struct flock* file_lock(int type, int whence) { static struct flock ret ; ret.l_type = type ; ret.l_start = 0 ; ret.l_whence = whence ; ret.l_len = 0 ; ret.l_pid = getpid() ; return &ret ; } read_lock(FILE *f) { /* a shared lock on an entire file */ fcntl(fileno(f), F_SETLKW, file_lock(F_RDLCK, SEEK_SET)); } write_lock(FILE *f) { /* an exclusive lock on an entire file */ fcntl(fileno(f), F_SETLKW, file_lock(F_WRLCK, SEEK_SET)); } append_lock(FILE *f) { /* a lock on the _end_ of a file -- other processes may access existing records */ fcntl(fileno(f), F_SETLKW, file_lock(F_WRLCK, SEEK_END)); } un_lock(FILE *f) { /* ulock an entire file */ fcntl(fileno(f), F_SETLKW, file_lock(F_UNLCK, SEEK_SET)); } -- Maxim Zakharov http://sochi.net.ru/~maxime/ Sochi, Russia http://www.sochi.com/

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру