5 works needs tweking

This commit is contained in:
2025-11-12 16:31:36 +07:00
parent f251380639
commit 331e89fbbe
4 changed files with 302 additions and 0 deletions

57
lab_5/Makefile Normal file
View File

@@ -0,0 +1,57 @@
# Makefile for lab 10.5 - POSIX message queues
CC = gcc
CFLAGS = -Wall -Wextra -std=c99 -g
LDFLAGS_MQ = -lrt
all: msg
# ===== POSIX MQ targets =====
msg: msg_server msg_worker
msg_server: server.c common.h
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS_MQ)
msg_worker: worker.c common.h
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS_MQ)
# ===== Tests =====
test_msg_server: msg
@echo "=== Запуск сервера POSIX MQ ==="
@echo "В другом терминале выполните: make test_msg_workers"
./msg_server 150 10 1000 800
test_msg_workers: msg
@echo "=== Запуск нескольких пчёл ==="
./msg_worker 7 & \
./msg_worker 9 & \
./msg_worker 5 & \
wait
# Автотест: сервер в фоне, несколько пчёл
test_all: msg
@echo "=== Автотест POSIX MQ ==="
./msg_server 150 10 1000 800 & \
SRV=$$!; \
sleep 2; \
./msg_worker 7 & \
./msg_worker 7 & \
./msg_worker 7 & \
wait; \
wait $$SRV
# Очистка
clean:
@echo "Очистка..."
rm -f msg_server msg_worker
help:
@echo "Available targets:"
@echo " msg - Build POSIX message queue programs"
@echo " test_msg_server - Run MQ server (use workers in another terminal)"
@echo " test_msg_workers - Run several worker processes"
@echo " test_all - Automatic end-to-end test"
@echo " clean - Remove built files"
@echo " help - Show this help"
.PHONY: all msg test_msg_server test_msg_workers test_all clean help