|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||||||||||||
Многкратное перенаправление ввода/вывода (CreatePipe)15.07.2021, 13:00. Показов 13394. Ответов 36
Мне нужно многократно перехватить ввод/вывод дочернего процесса code.exe, например, такого:
Но как добиться многократного перенаправления, чтобы не запускать многократно дочерний процесс? Чтобы один раз запустить code.exe и многократно передавать в него и читать данные. Как это сделать? Ведь просто поместить в цикл процесс записи/чтения не получится, так как пайпы закрываются уже в первой итерации:
Как быть? Подскажите, кто знает, или дайте ссылку где почитать об этом.
0
|
||||||||||||||||
| 15.07.2021, 13:00 | |
|
Ответы с готовыми решениями:
36
Перенаправление потока вывода Перенаправление вывода в другое окно Перенаправление вывода при запуске процесса |
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 15.07.2021, 18:28 | ||
|
1
|
||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 15.07.2021, 18:30 [ТС] | |
|
Хотя нет. Просто я перепутал с WCHAR для ModuleName[]
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 15.07.2021, 18:30 | ||
|
1
|
||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 15.07.2021, 18:34 [ТС] | |
|
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 15.07.2021, 18:37 | |
|
LVV, ну, дерзайте...
По программе вопросов нет?
1
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 15.07.2021, 18:41 [ТС] | |
|
0
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||
| 16.07.2021, 18:43 [ТС] | ||||||
|
liv, я заметил странное поведение "примерчика".
Он умудряется дважды передать и прочитать данные в незацикленный дочерний модуль. Тоесть, ехе-шник code1.exe компилирую вот из такого кода:
Но по факту - передача/чтение происходит дважды. И лишь на третий раз: Time out! Мистика.
0
|
||||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 17.07.2021, 11:02 | |
|
LVV, не пробовал...
![]() Было сказано, code.exe не менять! ![]() Посмотрю в понедельник
1
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 18.07.2021, 07:17 [ТС] | |
|
Пардон. Проблему решил. Виновата, как всегда моя невнимательность (дважды запускался процесс).
0
|
|
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
| 18.07.2021, 08:44 | |
|
LVV,
1
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||||||||||||
| 26.07.2021, 19:12 [ТС] | ||||||||||||||||
|
Неделю не могу справиться с проблемой.
Переделал пример, для ввода/чтения строковых данных.
то перенаправление потоков не срабатывает. Например, запускается база данных нормально:
Если передать неправильную команду, то считывается сообщение об ошибке и процесс (база данных) закрывается. Хотя при запуске MariaDB вручную те же команды можно вводить многократно и процесс (база данных) не закрывается. Заметил, что перехваченное сообщение об ошибке отличается от выведенного в режиме ручного ввода той же комады в командной строке базы данных (смотрите рисунок). Почему так? Подскажите, кто знает, хотя бы в каком направлении копать и с чем это может быть связвано: с неочищенным буфером обмена, с перехватом не того потока, с кодировкой символов... ???
0
|
||||||||||||||||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 26.07.2021, 19:18 [ТС] | |
|
Забыл вложить рисунок
0
|
|
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
||||||
| 06.08.2021, 06:55 [ТС] | ||||||
|
Считывание данных из mysql.exe происходит нормально только при завершении дочернего процесса.
Если команда неправильная, то процесс (mysql.exe) закрывается аварийно по ошибке Got an error reading communication packets, после чего чтение данных ReadFile срабатвает (отвисает) и читается информация об ошибке. Если команда правильная, то ReadFile "виснет". Но при ри ручном закрытии дочернего процесса в момент зависания ReadFile, чтение срабатывает (отвисает) и в результате читается ответ на запрос к mysql.exe. Странно, что закрытия дочернего процесса не требуется, если это обычный зацикленный процесс, типа такого:
0
|
||||||
|
68 / 55 / 13
Регистрация: 26.07.2021
Сообщений: 191
|
||
| 06.08.2021, 10:37 | ||
|
1
|
||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 06.08.2021, 11:46 [ТС] | |
|
tiun, я как-то не задумывался над этим.
Думал, что \n\0 достаточно. Ведь без треда срабатывало нормально (правда, при закрытии концов pipe) Спасибо. Поработаю над этим. Может быть в этом вся причина зависаний...
0
|
|
|
68 / 55 / 13
Регистрация: 26.07.2021
Сообщений: 191
|
|||
| 06.08.2021, 11:58 | |||
|
Представьте, что Вы пишете программу, которая читает файл побайтно, сама его на строки разбирает и что-то с этими строчками делает. Что для неё будет признаком того, что "вот на этом байте строка закончилась и можно передавать её в работу"? Либо то, что после этого байта из файла прочитана последовательность, означающая по какому-то соглашению конец строки, либо то, что файл кончился. А закрытие канала - это и есть полный аналог достижения конца файла.
1
|
|||
|
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
|
|
| 09.08.2021, 09:20 [ТС] | |
|
Проблема как-то непонятно исчезла.
![]() Всё вдруг заработало после переключений --binary-mode=1. --binary-mode=0. ![]() Правда, MySQL почему-то по-прежнему, аварийно завершает работу при любой ошибке...(Got an error reading communication packets)
0
|
|
| 09.08.2021, 09:20 | |
|
Перенаправление потока ввода в .exe файл Mailslot и перенаправление ввода/вывода c++ unix перенаправление консольного ввода\вывода
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|