|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/150643da59e05.html, оценка из 5, голосов 10
|