Я пытаюсь сделать что-то здесь, у меня есть программа c, где мой родительский процесс создает канал, чтобы он мог прослушивать запрос от дочернего процесса. Эти дети создаются динамически, это никогда не совпадает с числом. До сих пор мне удалось отправить запросы родителям через канал и синхронизировать их с мьютексом.C программирование двунаправленная связь
Моя проблема заключается в том, что для этого запроса был предоставлен ответ ребенку, который сделал такой запрос, и я не могу использовать один и тот же канал с одного его пути, и все остальные дети будут его использовать (я уже пробовал и он генерирует serius issue)
Следующее, что я пробовал, - это сделать трубку перед запросом на дочернем элементе и передать значение дескриптора в запросе. Также не удалось, так как родитель не знает эти дескрипторы, которые я узнал после неудачи.
Итак, теперь я не знаю, как заставить ответ этого запроса достичь ребенка ... Я начинаю с программированием на С, поэтому вся помощь приветствуется!
КСТАТИ: работа в программе Unix, чистый C программирования
Вы пробовали передать дескриптор трубы в родительский процесс по конвейеру, на который ребенок прослушивает ответ? – phyrrus9
Также можно увидеть код – phyrrus9
Вы можете дать каждому дочернему процессу канал для ввода и канал для вывода, а родительский процесс будет использовать другие концы. Если вы можете использовать 'stdin' и' stdout' для труб, тем лучше. Розетки - еще одна альтернатива. http://beej.us/guide/bgipc/output/html/singlepage/bgipc.html - хороший источник информации. Так книги Ричарда Стивенса по программированию UNIX. – PSkocik