>72に勝手に補足。

char **argvの意味するところが判ったら、次は
(コードとして難易度は比較的高い部類なんだけれど)
コマンドライン引数を解析する為の関数である

getopt(3)あるいはgetopt_long(3)

がunistd.hあるいはgetopt.h(Solarisはどっちだろ...)
にあるので、それの使い方および内部構造を読んでみると
更に理解が進むと思う。

http://cvsweb.netbsd.org/bsdweb.cgi/basesrc/lib/libc/stdlib/getopt.c?rev=1.21&content-type=text/x-cvsweb-markup
http://cvsweb.netbsd.org/bsdweb.cgi/basesrc/lib/libc/stdlib/getopt_long.c?rev=1.15&content-type=text/x-cvsweb-markup

# GPL版のgetopt_longは正直ごちゃごちゃしてるのでお勧めしない