More initial writeup of first project

This commit is contained in:
Remzi Arpaci-Dusseau
2018-01-16 10:29:40 -06:00
parent cf826fde07
commit 55074f5be0
2 changed files with 53 additions and 1 deletions

View File

@@ -8,7 +8,16 @@ at the University of Wisconsin-Madison.
## Initial Projects
* [Unix Utilities](http://www.ostep.org)
These projects are meant to get you warmed up with programming in the C/UNIX
environment. None are meant to be particularly hard, but should be enough so
that you can get more comfortable programming.
Realize the best thing you can do to learn to program in any environment is to
program **a lot**. These small projects are only the beginning of that
journey; you'll have to do more on your own to truly become proficient.
* [Unix Utilities](https://github.com/remzi-arpacidusseau/ostep-projects/initial-utilities)

View File

@@ -0,0 +1,43 @@
# Unix Utilities
In this project, you'll build a few different UNIX utilities, simple versions
of commonly used commands like **cat**, **ls**, etc. We'll call each of them a
slightly different name to avoid confusion; for example, instead of **cat**,
you'll be implementing **my-cat**.
Objectives:
* Re-familiarize yourself with the C programming language
* Learn a little about how UNIX utilities are implemented
* Learn (as a side effect) how to use a proper code editor such as emacs
## my-cat
The program **my-cat** is a simple program. Generally, it reads a file as
specified by the user and prints its contents. A typical usage is as follows:
```
my-cat main.c
```
In this case, **my-cat** will read the file **main.c** and print out its
contents.
You'll need to learn how to use a few library routines from the C library to
implement the source code for this program, which we'll assume is in a file
called **my-cat.c**.
## my-grep
## my-zip and my-unzip
## my-sort
## my-uniq