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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Fedor Lizunkov                       2:5020/960.1   10 Oct 2002  19:30:00
 To : All
 Subject : Си и fcntl.h
 -------------------------------------------------------------------------------- 
 
 
 Hужно залочить файл. Поглядел примеры, написал такое -
 
 int lock(int handle, long offset, long length) {
    struct flock fl;
 
    fl.l_type = F_WRLCK;
    fl.l_whence = SEEK_SET;
    fl.l_start = offset;
    fl.l_len = length;
 
    return fcntl(handle, F_SETLK, &fl);
 }
 
 int unlock(int handle, long offset, long length) {
    struct flock fl;
 
    fl.l_type = F_UNLCK;
    fl.l_whence = SEEK_SET;
    fl.l_start = offset;
    fl.l_len = length;
 
    return fcntl(handle, F_SETLK, &fl);
 }
 
 При проверке выяснилось, что если первый процесс заблокировал некую область, а
 второй полез туда без проверки, то он эту область очень даже переписывает.
 
 Вопрос - это я не разобрался, или предварительно нужно проверить блокировку из
 второго процесса?
 
 Я вообще-то думал, что просто функиця write() не сработает из второго процесса. 
 Я не прав?
 
 С глyбоким yважением, Fedor Lizunkov.
 
 --- GoldED+/LNX 1.1.4.7
  * Origin: *L*F*A* BBS & FREQ 00:00-08:00 only (2:5020/960.1)
 
 

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

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