Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 57

Обработка параллельной записи в файл

02.04.2015, 15:00. Показов 1033. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу программау, которая формирует массив размером N, каждый элемент которого содержит значение sin(2 * pi * i / N), где i = (0..N-1). Sin высчитывается с использованием ряда Тейлора. Каждый член ряда высчитывается в отдельном процессе. Каждый процесс записывает в файл pid и рассчитанное значение. Так вот у меня возникает такая ситуация, когда два пройесса пишут в файл одновременно и в итоге перезаписывают значения. Когда я проверяю файл там вместо 1536 строк 1506 или около того, а из-за этого вся программа дальше валится. Как обойти эту проблему?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.04.2015, 15:00
Ответы с готовыми решениями:

Блокировка файла во избежание параллельной записи
Пишется программа для сервера (CGI). Она пишет в файл. Ясно, что 2 зкземпляра программы не должны одновременно писать. Пытаюсь сделать...

Проверка на совпадение последней и следующей записи при записи в файл
Доброго времени суток) У меня в файл записывается произошло соединение с сервером или нет, но проверка с соединением происходит каждые...

Как добавлять записи в файл, делая проверку на пустые записи
k = 0 'Ñ÷åò÷èê ïócòûõ çàïèñåé For x = 0 To 7 If Text1(x).Text = "" Then Shape1(x).Visible = True k = k + 1 ...

3
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
02.04.2015, 16:21
Цитата Сообщение от OkVeL Посмотреть сообщение
Так вот у меня возникает такая ситуация, когда два пройесса пишут в файл одновременно и в итоге перезаписывают значения. Когда я проверяю файл там вместо 1536 строк 1506 или около того, а из-за этого вся программа дальше валится. Как обойти эту проблему?
Писать в файл в одном отдельном процессе. А из остальных — посылать этому процессу сообщение с pid'ом и результатом.

Вообще не понимаю, зачем тут процессы, да ещё и на каждый вычисление, а не на каждое ядро. Это же явный оверхед.
0
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 57
02.04.2015, 16:35  [ТС]
Это просто такое условие задания.
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
03.04.2015, 16:41
flock() / lockf() / int fcntl(int fd, int cmd, struct flock *lock);
Тогда операционка будет блокировать запись в залоченное место/файл, в которое пишет другой поток, а "опоздавший" будет ждать на функции write() / fprintf()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2015, 16:41
Помогаю со студенческими работами здесь

Записи. Обработка таблиц
на основе таблицы, включающей названия 10 моделей автомобилей,цену, их технические характеристики(мощность, наибольшая скорость, масса, вид...

Обработка результатов запроса по 1 записи
Допустим у меня есть такой запрос в хранимой процедуре declare x text; Select type into x from reestr_attributes; и в...

Обработка данный перед записи в БД
Ув. форумчане , прошу объясните как исправить Значит АЯКС запросом получаю сериализированную строку и обрабатываю в PHP. if...

Повреждается бинарный файл при попытке его записи в другой файл
Делаю автоматизированную сборку. Для этого нужно соединить три файла в один новый. Но почему-то каждый раз в exe-файле появляется лишний...

Gb записи в типизированный файл создается файл огромного размера больше 2Гб что делать?
Доброе утро, в программе создаю файл с данными о студентах(лабараторная работа) он созается но весит больше 2Гб так должно быть или я что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru