Создание нескольких именованных каналов - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь создать программу, определяющую количество дочерних элементов, определенных пользователем. Родитель должен использовать именованные каналы (это требование) для отправки информации туда и обратно со своими детьми. Итак, мне нужно создать количество именованных каналов, равное количеству разветвляющихся детей. Как я могу сделать это эффективно, и чтобы каждый ребенок знал, как называется его трубка?

pid_t childpid;
for(i = 0; i < numWorker; i++){
    // char *pipeName = "somename";
    // change the pipeName to reflect the child by adding a suffix
    // mkfifo(pipeName, 0666);
    childpid = fork();
    if(childpid < 0){
        perror("fork\n");
    }
    else if(childpid == 0){
        signal(SIGCONT, handleSignalChild);
        // how can I open the fifo here and then carry on reading and writing 
        //inside the while() below?
        break; // child exits the creation loop.
    }
}


// Main program execution begins here
while(1){

    if(childpid == 0){
        // read and write to the already opened pipes.
        //code to handle child execution.
    }
    else{
        // open all fifo pipes and get ready to read and write stuff.
        //code to handle parent execution.
    }

}

РЕДАКТИРОВАТЬ : переформулировал вопрос, чтобы сделать его более понятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...