nixp.ru v3.0

18 апреля 2024,
четверг,
02:02:03 MSK

Longobard написал 24 сентября 2004 года в 23:39 (995 просмотров) Ведет себя как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.

Ситуация такая: есть пайп. В дочернем процессе создаем обьект класса xxx:

xxx * obj = new xxx;

есть пайп pipe.

Как мне передать этот обьект от дочернего процесса родительскому через пайп? Клинит меня че-та. Пробовал втупую — не работает. Пробовал преобразовывать обьект в void* и пересылать — тоже не работает.

Uncle Theodore

Дык, имхо, никак. Напиши для класса функцию записи в пайпу и функцию чтения из пайпы (как если бы ты записывал в файл и читал из него). Пайпа-то не знает, что у тебя объект, а не просто последовательность байтов…

Good Luck,

UT

Uncle Theodore

Кстати о птичках. Твой дочерний процесс создает объект и вешает на obj ссылку на область памяти с этим объектом. Но. В зависимости от того, как создан сам дочерний процесс, область памяти с объектом может быть и недоступна папаше (в случае форка это так, а в случае pthread’а — не так, но в случае pthread’а тебе и пайп не нужен). То бишь, передавай объект, а не ссылку на него.

Good luck,

UT

Поэлементно копируй поля в буфер, передавай буфер и парси его, что сложного-то? Ну или shared memory.

Последние комментарии

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.