are distinct (See POSIX.2 glossary).
A utility is a executable, script or shell builtin; while a command
can be any of those things plus lists, pipelines, compound commands
(if, for, while) and shell function definitions.
use getopt to parse command line arguments.
use err(), errx(), etc. for error messages.
include appropriate header files for function prototypes.
return 0 on successfull exit instead of dropping off the end of main().