![]() |
|
Модераторы: xvr |
![]()
|
|
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Доброе время суток. Вопрос теоретический)
Если я создаю процесс, делаю форки, получаются дочерние процессы. Они наследуют все дескрипторы файлов, и, используя ф-ию fcntl я могу заблокриовать файл. А если я процессы запускаю независимо, т.е. ну написал одну программу, другую - у них будут же разные дескрипторы. Что нужно использовать чтобы когда одна программа пишет в файл, другая ждала окончания записи? И ещё пока я смотрел в инете ф-ии блокировки, нашел чуть ли не три разных варианта, fcntl, flock и ещё что-то... спасибо -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 16 Всего: 110 |
блокируй файл.
используй ту функцию, что больше подходит. |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Хм, сделал 2 программы, одна читает другая пишет. Через потоки ifstream/ofstream. Если пишу - читающий поток не может открыть, если открываю - пишущий может писать( Почему так?
И ещё, в поиске на форуме нашел примеры с flock. Формат flock (fd, LOCK_EX) допустим. У меня компилятор пишет что нет такого формата ф-ии, и что нужно в flock передавать const flock&. Чего так( -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 1 Всего: 39 |
Маны для кого написаны? flock принимает два инта: первый - дескриптор файла (открытого open), второй - тип блокировки.
Добавлено через 5 минут и 16 секунд Ну и: #include <sys/file.h> -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Ripper,
leases locking man 2 fcntl -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
djamshud, а, просто у меня был подключен fcntl.h и он писал что формат функции другой (т.е. не ненаходил её, а именно писал что она есть но с другим форматом). Спасибо большое
-------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Ripper |
|
||||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Написал с помощью 2х разных методов блокировку, запускал 2 программы: одну со слипом, другую без. И все равно не получилось заблокировать.
Первая:
Вторая:
В обоих случаях не заходит в if блок :( Что здесь не так? Чувствую что где-то совсем туплю) Спасибо -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
||||
|
|||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Ripper,
я же написал leases locking man 2 fcntl -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |