Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 420
#1

Связь двух программ через файл данных - C++

12.01.2010, 13:40. Просмотров 472. Ответов 3
Метки нет (Все метки)

(среда С++ Builder). (Интеграция технологических процессов)

Как автоматизировать работу 2 приложений, связанных по файлу данных?
Пусть программа2 должна создать файл dat.txt необходимое программе1
Например есть возможность запуска программы2 из исходной
(хэдер process.h , функции execl и т.п.). Однако при этом встает проблема
отслеживания лмбо конца работы программы2, либо конца записи в файл.
Проблема осложняется еще тем что вроде бы в стандартных флагах
открытия файлов fopen не предусмотрен эксклюзивный доступ и либо тогда
надо переписывать процедуры работы с файлами с использованием функций
ниэнего уровня open (возможно еще различающихся для разных ОС и реализаций С)
либо пойти на обмен межпроцессными сообщениями, что тоже не очень приятно.
Простейший тест в С++ Builder показал что при открытии файла c незавершенным
процессом записи по fopen (fln,"w")
попытка чтения по f=fopen (fln,"r") действительно открывает файл
т.е f<> NULL однако операторы чтения не проходят (или читается мусор).
Итак , как лучше поступить
а)использовать приемы обмена сообщениями между приложениями
или
б)все-таки пойти на замену процедур работы с файлом чтобы обеспечить эксклюзивный доступ

и то и другое по-моему недостаточно освещено в стандартной тезнике программирования
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2010, 13:40     Связь двух программ через файл данных
Посмотрите здесь:

Запись запущенных программ в лог файл. C++
C++ Открытие программ через Eclipse
C++ Реализовать базу данных через текстовый файл
C++ С++ , связь программ
C++ Лучшая база данных для программ на С++
C++ Составление программ на использование структур данных
Соединение двух программ в одну (бинарное сложение и бинарное сравнение) C++
C++ Составление программ с использованием объектов файл заголовке
Составление программ с использованием объектов файл заголовке fstream.h C++
Объединение двух программ C++
C++ Запуск программ через программу
C++ Объединение двух программ в одну

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,941
Завершенные тесты: 1
12.01.2010, 14:07     Связь двух программ через файл данных #2
Если в обоих приложениях ты будешь открывать файл и для чтения и для записи, то он будет заблокирован для одного из них.
eugrita
3 / 4 / 0
Регистрация: 18.11.2009
Сообщений: 420
12.01.2010, 16:54  [ТС]     Связь двух программ через файл данных #3
Спасибо. Однако не совсем согласен.Я только утверждаю, что
fopen возвращает ненулевой дескриптор, и программа выполняет следующий оператор - чтение
файла по scanf и он то не работает. Т.е. при работе с C Runtime Library в таком стиле нет! программных средств контроля за блокировкой если она даже произошла
Пробовал также lock и unlock однако они 1)используют целый дескриптор файла
2) по моему попытка заблокировать файл при активном 2-м процессе с lock не удалась
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,941
Завершенные тесты: 1
13.01.2010, 06:11     Связь двух программ через файл данных #4
eugrita, Ты можешь отслеживать успешное выполнение операции открытия файла, чтения, записи. Если открытие прошло не успешно, то пробуешь позже.

Добавлено через 1 минуту
Но вообще удобнее с данном случае использовать например СУБД какую либо, в которой эти механизмы уже безопасно реализованы.
Yandex
Объявления
13.01.2010, 06:11     Связь двух программ через файл данных
Ответ Создать тему
Опции темы

Текущее время: 06:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru