Для начала ваши дочерние процессы завершаются сразу после их создания.Если бы они этого не сделали, тогда первый ребенок создал бы своего собственного ребенка.Вы, вероятно, захотите создать дочерние элементы в цикле for и сделать что-то вроде:
if(child_pid[i] != 0)
{
/* This is the parent. */
}
else
{
/* This is the child. */
do_child_stuff();
exit(0);
}
Неправильно открывать файл перед выполнением fork ().В итоге вы получите три процесса, каждый из которых хранит дескриптор файла в одном и том же файле с одинаковыми правами доступа.Жизнь начинает усложняться, если вы делаете это!В общем случае открывайте файлы только тогда, когда вам это действительно нужно, и закрывайте их, как только вы закончите их использовать.
Я думаю, что ваш вопрос означает, что вы хотите, чтобы родительский процесс сказал ребенкунаписать, отправив сигнал от родителя ребенку.Есть более простые способы сделать это, но я думаю, ваш учитель хочет, чтобы вы продемонстрировали, как делать это с помощью сигналов.
Прежде всего, вам нужно написать обработчик сигнала.См. http://linux.die.net/man/2/signal для получения дополнительной информации о том, как это сделать.
Во-вторых, вам действительно нужно отправить сигнал.См. http://linux.die.net/man/2/kill для получения дополнительной информации.Обратите внимание, что название «убить» немного неправильное.