|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : yx 2:5020/400 25 Jun 2001 06:18:21 To : Solar Designer Subject : Re: popa3d & flock & deliver -------------------------------------------------------------------------------- Solar Designer <solar@cannabis.dataforce.net> wrote: >>> Кстати, на Linux'ах все-таки fcntl-локинг ящиков более "стандартен", >>> чем flock. То что в popa3d-0.4 поддерживался только flock нехорошо с >>> моей стороны. >> а lockf? >> fcntl [posix lock], lockf [xpg42], flock [42bsd], (ну и кр.сл. dotlock) >> напр. см. tin - варианты locking'а: fcntl(), lockf(), flock(), dotlock. >> Или в чем специфика в сабже? > > Пока системы которые мне попадались либо использовали (умолчание в LDA) > один из {fcntl, flock}, либо использовали lockf но он в ядре совпадал с > одним из {fcntl, flock}. Поэтому просто пока не хотел захламлять код еще > и явной поддержкой lockf. Hо как только мне покажут систему где именно > lockf и ни с чем не совпадает, сделаю. > вполне понятно, если более точно - то не понятна специфика использования/не_использования определенного локинга. возможны соображения, не в смысле то что lockf(3) есть обычно интерфейс к fcntl(2), а то что какая-либо из функций более четко определяет механизмы/свойства локинга: mandatory/advisory, nfs-safe/unsafe, etc. ? Если я нигде не ошибся, беспорядок может выглядить так: sysv: fcntl/lockf - есть возможность mandatory, nfs-safe?. posix: fcntl - advisory. xpg: lockf - только advisory, fcntl - тоже advisory, однако говорит о возможности implementation-dependend значениях (можно и для mandatory locking'a использовать, почему бы и нет?). nfs-safe/-unsafe неопределенно (в реализациях обычно nfs-safe) 42bsd: flock - только advisory (в реализациях через раз nfs-safe/-unsafe). Практически везде есть все эти интерфейсы, причем реализованы довольно часто довольно чудным образом. Hп, если это linux: в мануале fcntl - advisory, реально mandatory или advisory - определяется опцией монтирования для локальных fs (mand/nomand), при этом flock - должен быть только advisory. И т.д. p.s. одним словом: lockf(3) - просто малопонятная подстраховка к fcntl(2), и не более того, или все таки в чем-то он специфичен. -- Vladimir Yakovetsky --- ifmail v.2.15dev5 * Origin: <Customer of IP Telecom Ltd.> (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/201889bc2778c.html, оценка из 5, голосов 10
|