Thinking in C and *nix (CSC 282 2015S) : EBoards
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] [FAQ] [Teaching & Learning] - [Calendar]
Current: [Outline] [EBoard] [Lab] [Assignment]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines]
Reference: [EBook] - [ISO] [GNU Coding Standards] [GCC Documentation] - [TAoUP] [Make3]
Previous Offerings: [CSC 295 2013S] [CSC 295 2014S]
Misc: [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] [Issue Tracker]
Overview
Sam expects coders to
Thinking in C
Good C programmers ...
Thinking *nix
char *
fun (char *t, char *s)
{
while (*t++ = *s++);
return t;
} // fun
Hypotheses
How would you diagnose the following program that crashes?
x = malloc (...);
phase1 ();
phase2 ();
free (x);
Observations:
free, the program will run to completion. free before the call to phase2, the program
will run to completion.free in phase2. Hypotheses
LastName,FirstName,Assignment,NumericGrade <img ... src="*URL*" ...>
img can have any capitalization (img,
IMG, Img, iMg, etc.)img and the
src. (That text cannot include a greater than sign.)This will appear online some time in the near future (probably over the weekend).
Repository: https://github.com/Grinnell-CSC282/hw1-2015S
Read chapter 1 of Raymond to get a deeper understanding of the *nix Philosophy.
Find good solutions to all of the tasks above. (That is, write a program or command to solve the task.) Put them in a folder with your name in the GitHub repository.
Make a list of *nix tools and utilities that you've found useful
(or even that you've just heard of). Try to categorize and add a
short description. Add the tools you've discovered to the tools.md
file in the repository.