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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Serguei Khvatov                      2:5020/175.2   11 Oct 2002  14:19:26
 To : Fedor Lizunkov
 Subject : Си и fcntl.h
 -------------------------------------------------------------------------------- 
 
 Thu Oct 10 2002 19:30, Fedor Lizunkov wrote to All:
 
  FL> Привет All!
 
  FL> Hужно залочить файл. Поглядел примеры, написал такое -
 
  FL> int lock(int handle, long offset, long length) {
  FL>    struct flock fl;
 
  FL>    fl.l_type = F_WRLCK;
  FL>    fl.l_whence = SEEK_SET;
  FL>    fl.l_start = offset;
  FL>    fl.l_len = length;
 
  FL>    return fcntl(handle, F_SETLK, &fl);
  FL> }
 
  FL> int unlock(int handle, long offset, long length) {
  FL>    struct flock fl;
 
  FL>    fl.l_type = F_UNLCK;
  FL>    fl.l_whence = SEEK_SET;
  FL>    fl.l_start = offset;
  FL>    fl.l_len = length;
 
  FL>    return fcntl(handle, F_SETLK, &fl);
  FL> }
 
  FL> При проверке выяснилось, что если первый процесс заблокировал некую
  FL> область, а второй полез туда без проверки, то он эту область очень даже
  FL> переписывает.
 
 И не должно - это же advisory locking. Есть возможность сделать и mandatory
 locking. Как это сделать - описано в
 <исходные-тексты-ядра>/Documentation/mandatory.txt Реализовано, конечно через
 не-то-место:-), но и сама идея сомнительная -- файлы не предназначены для
 совместного доступа, а для совместного доступа есть достаточно других
 механизмов.
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
 
 

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

 Тема:    Автор:    Дата:  
 Си и fcntl.h   Fedor Lizunkov   10 Oct 2002 19:30:00 
 Си и fcntl.h   Serguei Khvatov   11 Oct 2002 14:19:26 
Архивное /ru.linux/330069a96bad.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional