Longobard
написал 24 сентября 2004 года в 23:39 (1054 просмотра)
Ведет себя
как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.
Ситуация такая: есть пайп. В дочернем процессе создаем обьект класса xxx:
xxx * obj = new xxx;
есть пайп pipe.
Как мне передать этот обьект от дочернего процесса родительскому через пайп? Клинит меня че-та. Пробовал втупую — не работает. Пробовал преобразовывать обьект в void* и пересылать — тоже не работает.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Дык, имхо, никак. Напиши для класса функцию записи в пайпу и функцию чтения из пайпы (как если бы ты записывал в файл и читал из него). Пайпа-то не знает, что у тебя объект, а не просто последовательность байтов…
Good Luck,
UT
Кстати о птичках. Твой дочерний процесс создает объект и вешает на obj ссылку на область памяти с этим объектом. Но. В зависимости от того, как создан сам дочерний процесс, область памяти с объектом может быть и недоступна папаше (в случае форка это так, а в случае pthread’а — не так, но в случае pthread’а тебе и пайп не нужен). То бишь, передавай объект, а не ссылку на него.
Good luck,
UT
Поэлементно копируй поля в буфер, передавай буфер и парси его, что сложного-то? Ну или shared memory.