+ /*
+ * Register memory to share with other processes, and pass current
+ * process id to the array.
+ */
+ shmid = shmget(shmkey, sizeof(struct message), IPC_CREAT | 0666);
+
+ processes = (struct message *)shmat(shmid, NULL, 0);
+ processes->pids[2] = getpid();
+
+ fprintf(stderr, "[%s] Shared pid: %d\n", "process3", getpid());
+
+ sleep(1);
+ /**
+ * Register message queue to communicate with other processes
+ */
+ qkey = getpid();
+ qid_input = msgget(qkey, IPC_CREAT | 0666);
+
+ qid_output1 = msgget(processes->pids[1], IPC_CREAT | 0666);
+ qid_output2 = msgget(processes->pids[2], IPC_CREAT | 0666);
+