Сборка программы:
scripts/build.sh
Запуск программы:
scripts/run.sh
Удаление Docker-контейнера:
scripts/clean.sh
prorgam_1 создает регион разделяемой памяти, записывает в него сообщение и передает ключ через стандартный поток вывода program_2, которая получает доступ к памяти по ключу, считывает и выводит сообщение из региона разделяемой памяти, после чего освобождает память. Синхронизация организована при помощи семафора.
cd build/
cmake ..
cmake --build .
./program_1 | ./program_2