У меня есть программа, с которой мне нужно использовать сигналы и обработчики.У меня есть два дочерних процесса, которые должны получать определенный пользователем сигнал, и один должен ничего не делать с сигналом, в то время как другой должен распечатать какое-то общее сообщение, перевести в спящий режим, а затем распечатать другое сообщение, указывающее, что остановка завершена,Один дочерний процесс, который должен ничего не делать с сигналом, должен вызывать сигнал.
Я почти уверен, что сигнал повышен с помощью обозначения signal(SIGINT, handler);
, поэтому я бы просто поместил его в функцию, определенную одним дочерним процессом, но как мне "отправить" сигнал обоим процессам??Как я могу при определенных условиях сказать, что один процесс получает сигнал и делает то, что ему говорит обработчик, а другой получает сигнал и ничего не делает?
Я читал о том, как kill(pid, handler)
сможет отправить назначенный процесс обработчику, но всякий раз, когда я пытаюсь это сделать, он говорит мне, что аргумент 1 из kill делает целое число из указателя без приведения.
Моя программа - это программа для чтения / записи, которая в значительной степени тестирует концепции без определенной цели, и в настоящее время все в одном исходном документе, но будет разделена на источник для определения функций процесса чтения,источник писателя, который будет определять функцию процесса писателя, а затем основной источник, который создает два дочерних процесса.У меня также будет заголовочный файл, в котором будут определены все необходимые константы и прототипы функций, но сейчас, если я смогу просто заставить его работать из одного источника, я смогу позже выяснить, как разделить его на несколько источников.