Я думаю, что когда вы выполняете fork () процесс в C, вы не можете передать какой-либо дескриптор от дочернего процесса обратно к родительскому - но, возможно, я ошибаюсь.Только то, что вы получаете, это PID нового дочернего процесса.Лучше всего открыть канал (с условным именем, например, имя канала содержит PID процесса), а затем открыть его из любого места.
Наконец, когда вы выполняете fork () процесс,он дает вам PID, и вы можете записать оба PID (двоичный и разветвленный C) в стандартный вывод программы C, например, с разделителем:
cpid = fork();
printf("%d|%d", (int)get_pid(), cpid);
Удачи:)