final spec of basic utilities
This commit is contained in:
@@ -193,7 +193,9 @@ even this line, which has barfood in it, will be printed.
|
|||||||
with **Foo** will *not* match.
|
with **Foo** will *not* match.
|
||||||
* Lines can be arbitrarily long (that is, you may see many many characters
|
* Lines can be arbitrarily long (that is, you may see many many characters
|
||||||
before you encounter a newline character, \\n). **my-grep** should work
|
before you encounter a newline character, \\n). **my-grep** should work
|
||||||
as expected even with very long lines.
|
as expected even with very long lines. For this, you might want to look
|
||||||
|
into the **getline()** library call (instead of **fgets()**), or roll your
|
||||||
|
own.
|
||||||
* If **my-grep** is passed no command-line arguments, it should print
|
* If **my-grep** is passed no command-line arguments, it should print
|
||||||
"my-grep: searchterm [file ...]" and exit with status 1.
|
"my-grep: searchterm [file ...]" and exit with status 1.
|
||||||
* If **my-grep** encounters a file that it cannot open, it should print
|
* If **my-grep** encounters a file that it cannot open, it should print
|
||||||
@@ -245,6 +247,11 @@ you would type:
|
|||||||
prompt> ./my-zip file.txt > file.z
|
prompt> ./my-zip file.txt > file.z
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The "greater than" sign is a UNIX shell redirection; in this case, it ensures
|
||||||
|
that the output from **my-zip** is written to the file **file.z** (instead of
|
||||||
|
being printed to the screen). You'll learn more about how this works a little
|
||||||
|
later in the course.
|
||||||
|
|
||||||
The **my-unzip** tool simply does the reverse of the **my-zip** tool, taking
|
The **my-unzip** tool simply does the reverse of the **my-zip** tool, taking
|
||||||
in a compressed file and writing (to standard output again) the uncompressed
|
in a compressed file and writing (to standard output again) the uncompressed
|
||||||
results. For example, to see the contents of **file.txt**, you would type:
|
results. For example, to see the contents of **file.txt**, you would type:
|
||||||
@@ -259,14 +266,11 @@ and print out the uncompressed output to standard output using **printf()**.
|
|||||||
**Details**
|
**Details**
|
||||||
|
|
||||||
* Correct invocation should pass one or more files via the command line to the
|
* Correct invocation should pass one or more files via the command line to the
|
||||||
program.
|
program; if no files are specified, the program should exit with return code
|
||||||
*
|
1 and print "my-zip: file1 [file2 ...]" or "my-unzip: file1 [file2 ...]" for
|
||||||
*
|
**my-zip** and **my-unzip** respectively.
|
||||||
*
|
* The format of the compressed file must match the description above exactly
|
||||||
*
|
(a 4-byte integer followed by a character for each run).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Footnotes
|
### Footnotes
|
||||||
|
|||||||
Reference in New Issue
Block a user