General: [Contents] [Introduction] [Examples]
C Resources: [ISO] [GNU Coding Standards] [GCC Documentation]
*nix Resources: [TAoUP] [Make3]
Courses: [CSC 295 2013S] [CSC 295 2014S]
Misc: [GitHub] [Issue Tracker] - [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell]
Introduction - Introductory notes on these materials.
Sample problems - A series of problems to get you thinking about problem solving in C and *nix.
Thinking in *nix - A short guide to general principles that often guide *nix programmers.
Thinking in C - A short guide to general principles that often guide C programmers.
Programming foibles to avoid - Some approaches to program development that irritate this author.
Unit testing - Notes on ways to think about testing your programs.
Shell basics - Basic instructions for using the cell.
Basic *nix tools - Tools that every *nix programmer should know.
Shell scripting - Writing simple shell programs.
Regular expressions
- Thinking about and writing the textual patterns used in sed
, grep
,
and more.
Beginning Make - The basics of the Make system.
Variables in Make - How to define and use variables in Make. Automatic variables.
Generic Rules in Make - How to write generic rules in Make, rules that apply to all files that match certain patterns.
Compilation - Compiling C files.
CPP - Using the C preprocessor.
Headers - Why have header files and how to design files.
Macros - Using and abusing macros in C.
Libraries - Using and building libraries in C.
Static variables - The why and how of static variables.
Using typedef
- A way to name types.
Designing functions - Typical ways to organize the inputs to and outputs from functions, particularly in the presence of potential problems.
Variable-argument functions - Writing functions that can take different numbers and types of parameters.
Function pointers - Creating and using pointers to functions.
Handles - Working with handles (pointers to pointers).
Signals - Handling and sending signals, messages that follow a different execution path.
Command-line processing - Using and parsing parameters passed on the command line.
GLib - Using GLib, a convenient set of routines.
GDB - Debugging your programs with gdb, the GNU debugger.
Copyright © 2014 Samuel A. Rebelsky. All rights reserved. This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/3.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.