Beej's Guide to C Programming source
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
attic added Dec 17, 2017
examples added Dec 17, 2017
lib added Dec 17, 2017
translations added Dec 17, 2017
website fix gh link Dec 17, 2017
.gitignore fix validation file ignore Dec 17, 2017
Makefile added Dec 17, 2017 fix title Dec 17, 2017

Beej's Guide to C Programming

This is the source for Beej's Guide to C Programming.

If you merely wish to read the guide, please visit the Beej's Guide to C Programming website.

If you're looking for network programming, visit the Beej's Guide to Network Programming website.

This is here so that Beej has everything in a repo and so translators can easily clone it.

Build Instructions

You'll need:

  1. If you don't have Xerces-C, go to bin/bgvalidate and uncomment the disable=1 line to disable validation.

  2. Type make from the top-level directory.

    If you have Gnu Make, it should work fine. Other makes might work as well. Windows users might want to check out Cygwin.

  3. Type make buildcp to copy all the build products and website to the build directory.

  4. There is no step three.

You can also cd to anywhere in the builders directory tree and make.

make clean cleans, and make pristine cleans to "original" state.

To embed your own fonts in the PDFs, see the file builders/print/fop.xconf which already embeds the Liberation Fonts into the PDF.

The upload target in the root Makefile demonstrates the build steps for a complete release. You'll need to change the UPLOADDIR macro in the top-level Makefile to point to your host if you want to use that. You're free to upload whatever versions you desire individually, as well.

Pull Requests

Please keep these on the scale of typo and bug fixes. That way I don't have to consider any copyright issues when merging changes.


  • Some way to make it more beginner-like, like that MIT thing?
  • Questions for each section.
  • Variables on the stack and the heap.