These files are solutions to Kernighan and Ritchie's *The C Programming Language, 2nd Edition*. The aim of this project is to help deepen one's understanding of C, using only the concepts covered in content that comes before each exercise. That means no "cheating" by using standard library features that aren't covered in the book yet. According to [`comp.lang.c`][clc], this is known as *Category-0 compliant*. As a result, many of the solutions will probably not be "the best", but suitable for the goal at hand: *learning*. ## Motive This project was started to bring out the value of the K&R. Just reading the text isn't enough; to best learn with the K&R, the exercises are valuable experience that keeps things interesting as one progresses through the book. Constructive critique is welcome, but please keep in mind the scope and goals of this project. Some incomplete implementations are noted. Pull requests, patches, questions, and advice are welcome. This project is the culmination of about ten years of revisiting the text when I got the opportunity. I hope its contents are as informative and instructive as the text itself. ## Roadmap * Improve exercises 8-4 through 8-8, once I learn how to verify memory sanity * A possible `modern` branch, to demonstrate how to achieve the same results with 'normal' methods. Might split between `c99` and `c11` or more, if there is interest. * Curate a list of "next step" resources for new C learners to cut their teeth on, to keep C interesting and not just restricted to theory. Outside opinions greatly appreciated! ## License This project is licensed under the GNU General Public License version 3 and is copywritten by the individuals in the AUTHORS file. For more information, please read the LICENSE file that accompanies this project. To keep things simple, contributions should be licensed under the same license to ensure the project retains its enforcement of software freedoms. If the GPL 3 is unsatisfactory for you, please do not submit pull requests or patches. [clc]: http://clc-wiki.net/wiki/K%26R2_solutions:Ancillary:Category_numbers