Minitalk is a 42 school project that demonstrates interprocess communication using UNIX signals. The project consists of a server and a client program, where the client sends a string of characters to the server using SIGUSR1 and SIGUSR2 signals, which the server reconstructs and displays.
- Implements signal handling using
sigaction(). - Transmits characters bit by bit using
SIGUSR1andSIGUSR2. - Supports Unicode and emoji characters.
- Handles error cases, including invalid PIDs.
- Implements bonus features, such as acknowledgment signals and improved performance.
Minitalk/
βββ src/
β βββ client.c
β βββ minitalk.h
β βββ server.c
βββ bonus/
β βββ client_bonus.c
β βββ server_bonus.c
βββ includes/
βββ libft/
β βββ libft.a
βββ Makefile
βββ README.md
To compile the mandatory part:
makeTo compile the bonus part:
make bonusTo clean object files:
make cleanTo remove all compiled binaries and libraries:
make fcleanTo recompile everything:
make re1οΈβ£ Run the server:
./serverIt will display:
Server PID: <PID>
2οΈβ£ Run the client to send a message:
./client <server_PID> "Hello, world!"The server will then output:
Hello, world!
- Acknowledgment Signal: The server sends a signal back to the client after receiving a full character.
- Unicode Support: Allows sending and displaying Unicode characters and emojis.
- Improved Performance: Optimized to prevent unnecessary delays.
- Developed as part of the 42 School curriculum.
- Successfully validated