Написать программу, которая играет сама с собой в «угадай число». Число находится в диапазоне от 1 до N (параметр программы, передается как аргумент или вводится сразу после запуска).
В игре участвуют 2 процесса, представляющих собой игроков. Второй процесс создается через fork().
Первый игрок загадывает число от 1 до N и извещает об этом второго игрока. Второй игрок начинает угадывать число. Попытки и результат выводятся на экран. После того, как второй игрок угадывает число, на экран выводится статистика игры – число попыток и, опционально, время игры, после чего игроки меняются местами, и игра начинается заново (число циклов может быть конечным или бесконечным – по желанию, но не менее 10).
Задание 1. Решить задачу с помощью сигналов. Передачу предположений (целых чисел) организовать с помощью сигналов реального времени. Извещение угадывающего процесса организовать с помощью стандартных сигналов SIGUSR1 (угадал) и SIGUSR2 (не угадал).
Задание 2. Решить задачу с помощью одного из средств межпроцессного взаимодействия:
- очередь сообщений;
- неименованный канал.
Сложный уровень: выполните второе задание в 2 вариантах - с помощью очереди сообщений и одного из каналов. Завершение одного из процессов должно приводить к корректному (неаварийному) завершению второго процесса во всех случаях.