Использование сигналов и сигпайпа

Я работаю над заданием, которое включает в себя написание программы для обработки данных (вычисления пи) с использованием форка (процессов), сигналов и выбора.

Сейчас я работаю над сигналами, и я думаю, что хочу использовать SIGPIPE, поэтому, если программа его перехватывает, она снова пытается записать в канал (если процесс пытается записать в канал, у которого нет читателя , будет отправлен SIGPIPE).

Я использую fork () в main (), чтобы назначить каждому процессу одну и ту же работу, отправив их рабочей функции.

void worker(int id) {
    .... (this piece of code is not relevant)

    if(write(pfd[id][1], &c, sizeof(c)) == -1)
        printf("Error occurred: %s\n",strerror(errno));

}

Как я могу реализовать сигналы в этой функции для перехвата SIGPIPE и повторной записи в канал?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос