I built this project to practice C in a real-world context, working with socket I/O, file I/O, concurrency, and the standard library. It helped me deepen my understanding of memory management, focusing on safe design patterns, stack vs. heap trade-offs, and avoiding pitfalls like unsafe internal pointers.
I also explored multiple approaches to the same problem (e.g., snprintf vs. sprintf, snprintf vs. itoa, strtok_r vs. strtok, memcpy, strdup vs strcpy, strncpy) to understand why certain methods are preferred for safety and performance.
Finally, this was an exercise in writing idiomatic C, with a modular, maintainable code structure.