4 ms·
Perhaps better than a book, can anyone authoritatively point to a few small-and-readable but best-in-class open-source C projects to use as a reference?
by Paperweight 7y ago
Perhaps better than a book, can anyone authoritatively point to a few small-and-readable but best-in-class open-source C projects to use as a reference?
- mlvljr 7y agoSqlite
- diego_moita 7y agoLua and Sqlite sources are excellent.
- kick 7y ago* tweetnacl.cr.yp.to Crypto library in the size of a hundred tweets [ https://twitter.com/tweetnacl https://twitter.com/tweetnacl ] by the only person with a genuine claim to being able to write safe C & company. * https://github.com/mit-pdos/xv6-public https://github.com/mit-pdos/xv6-public & * https://github.com/mit-pdos/xv6-riscv https://github.com/mit-pdos/xv6-riscv UNIX v6 clone in ANSI C by influential Plan 9-era Bell Laboratories employee and now influential Google employee Russ Cox, along with influential computer virus author and son of one of the original UNIX authors Robert T. Morrison; entire source code fits in under a hundred pages of well-typeset documents [ warning, old copy, you should generate a modern one: https://pdos.csail.mit.edu/6.828/2011/xv6/xv6-rev6.pdf https://pdos.csail.mit.edu/6.828/2011/xv6/xv6-rev6.pdf ].
- DyslexicAtheist 7y agonot recent projects but everything that DJB implemented is absolutely elegant, low on bugs and great as a lesson for how to write secure C. e.g. qmail, djbdns, daemontools, there is a lot of ideas there you can learn from: https://cr.yp.to/ https://cr.yp.to/ It also helps to build up (and refactor) your toolset over time, memory handling wrappers, logging, I/O, daemonize (https://github.com/jirihnidek/daemon https://github.com/jirihnidek/daemon) etc, so that you don't have to keep reinventing the wheel. if I'd recommend one book then it's: https://en.wikipedia.org/wiki/Advanced_Programming_in_the_Unix_Environment https://en.wikipedia.org/wiki/Advanced_Programming_in_the_Un...
- vyskocilm 7y agoAny C based project of zeromq project like https://github.com/zeromq/czmq https://github.com/zeromq/czmq is worth to read. Pieter Hintjens started a book explaining all the design decisions there https://hintjens.gitbooks.io/scalable-c/ https://hintjens.gitbooks.io/scalable-c/ Sadly he didn't have a time to finish the book.
- 2OEH8eoCRo0 7y agoOldie but goodie: https://github.com/id-Software/DOOM https://github.com/id-Software/DOOM