|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Kirill Frolov 2:5030/827.2 07 May 2004 07:50:24 To : Valentin Nechayev Subject : Re: Одновременный доступ к файлу -------------------------------------------------------------------------------- On Thu, 06 May 04 08:01:05 +0400, Valentin Nechayev wrote: KF>> Может быть да, может быть нет. Вообще write и read() атомарны, но KF>> говорят от типа FS зависит... %-( Кроме того, и от редактора зависит. VN> Hету атомарности записи кусков более чем один блок файловой системы. Это везде так, или специфично для некоторых файловых систем? VN> Hесколько параллельно отданных длинных write() могут дать перемешанный VN> вывод разных write(). А writev? Зачем он вообще при таком раскладе дел нужен /в ядре/ -- типично библиотечная функция, впрочем как и write... :-( KF>> Сделай, по аналогии с vipw, себе viipfw. Который бы делал копию, KF>> редактировал её $VISUAL'ом, и если копия имеет более новый mtime, KF>> просто переименовывал бы. Причём именно rename, иначе опять не атомарно KF>> получается (между rm и ln файл существовать не будет). Какой же маздай KF>> эти юнихи... VN> Сделай лучше.;)) Так получается, поставленная задача (*подмены* файла правил для firewall) принципиально не может быть решена (rename(2) в sh есть или нет -- неизвестно). Если в какой-то момент файл существовать не будет, то можно остаться без сети. А если редактировать пришли по ssh снаружи... Можно только перед загрузкой правил пытаться делать hardlink, и при его существовании уже загружать правила. И это в расчёте на то, что редактор не пишет прямо в файл, а тоже осуществляет подмену файла аналогичным способом. --- [ZX] * Origin: 0D00 1E54 41D1 9753 3F41 40F7 4BBA 050B 30E8 0E4E (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/38337e6b4c53.html, оценка из 5, голосов 10
|