Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запись данных на cin / 4 сообщений из 4, страница 1 из 1
19.04.2014, 17:52
    #38619549
Gijad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных на cin
Столкнулся с такой проблемой:
есть две программы source и algo, обе написаны на vc++, source запускает algo
Код: plaintext
1.
2.
vector<FILE *> fh;
fh.push_back(_popen(command.c_str(), "w"));


такой способ запуска выбран потому, что algo может быть запущен несколько раз одновременно.
В каждом экземпляре algo через
Код: plaintext
1.
cin.read(buffer,7);


читаются данные, сначала все нормально, но через некоторое время неск. сек. поток данных разрушается. Подскажите куда копать, чтобы исправить это?
p.s. есть вариант algo_perl написанный на perl, они идентичны с algo, когда source запускает algo_perl все нормально, данные не разрушаются.
...
Рейтинг: 0 / 0
19.04.2014, 20:06
    #38619610
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных на cin
Gijad,

Т.к. это винда, то имеет значение, бинарные ли данные или текстовые.
Если бинарные - то "w" заменить на "wb" а на другом конце переоткрыть cin с флагом бинарных данных (cin - текстовый).
Как переоткрыть cin - не знаю.
Возможно проще будет вообще не использовать его, а читать прямо из STDIN_FILENO функцией ::read(), тем более что cin.read практически ничем не отличается от нее.

Если захотите таки через cin то тут примерно указано направление http://compgroups.net/comp.unix.programmer/how-can-i-reopen-std-cin-and-std-cout-in/327672
...
Рейтинг: 0 / 0
21.04.2014, 08:48
    #38620028
Gijad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных на cin
Anatoly Moskovsky, спасибо, надо будет проверить.
...
Рейтинг: 0 / 0
21.04.2014, 08:59
    #38620036
Strangecat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запись данных на cin
Вот тут говорят
http://stackoverflow.com/questions/5257509/freopen-equivalent-for-c-streams

что cin привзян к stdin настолько, что freopen на stdin спасает отцов демократий.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запись данных на cin / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]