Capstone: Composing the Course
No new machinery โ the final project proves the old machinery composes.
What the capstone asks
A portable systems utility core โ the skeleton every real service grows from โ built from four pieces you have already written in isolation:
- Endian detector (module 24A) โ runtime byte probe returning a stable verdict.
- Checked size arithmetic (module 23) โ multiplication that refuses overflow instead of wrapping into a tiny allocation.
- Safe copy (module 23) โ snprintf's semantics: refuse, never truncate silently.
- A framed record writer (modules 20/21) โ length-prefix then bytes, gathered into one logical write (module 21's spans).
The checkpoint assembles them under one specification and verifies the composition: detection that matches the platform truth (little-endian here), arithmetic that refuses, copies that refuse, and a framed payload that round-trips.
Why composition is the test
Each piece passes its own tests; the capstone asks whether the contracts hold together:
- the framer trusts the size checker (a refusal upstream becomes a clean -1 downstream, not a crash);
- the detector's verdict decides byte order in the frame header โ so a wrong detector makes a wrong-but-consistent frame, which the round-trip catches;
- every failure path returns a code, so the caller can always distinguish "did nothing" from "did partially" from "refused".
That distinction โ clean refusal vs partial work vs silent corruption โ is the whole subject of this course, dressed in one function.
After this course
C Intermediate/Advanced territory beyond: concurrency at scale, allocator engineering, kernel interfaces. The modules named those doors; this course made sure you can walk to them โ reading C the way tools see it, reasoning about UB like a compiler engineer, measuring like an experimentalist, and refusing like a security engineer.