Как бы вы, если честно, запустили родительский процесс для создания нескольких детей, где каждый ребенок должен заниматься своим делом. Также дети должны общаться с родителями, используя неназванные каналы, поэтому я не думаю, что execv можно использовать здесь.
У меня было что-то вроде этого:
int main (int argc, const char * argv[])
{
pid_t pids[2];
int i;
for (i = 0; i < 2; ++i) {
if ((pids[i] = fork()) < 0) {
fprintf(stderr, "Error. Couldn't fork\n");
exit(EXIT_FAILURE);
} else if (pids[i] == 0) { // child
if (i == 0) {
readerChild();
} else {
writerChild();
}
}
}
//parent stuff;
for (i = 0; i < 2; ++i) {
wait(NULL);
}
return 0;
}
но, согласно моим выводам, два писателя-ребенка создаются, когда я хотел только одного.