9 Man ページ

Unix の世界では、マニュアルがたくさんあります。それらのマニュアルには、自由に使える個々の機能を説明する小さな章があります。

もちろん、manual は入力するのが面倒でしょう。つまり、私を含め、Unix の世界では誰もそんなにタイプするのが好きではないのです。実際、私はどれだけ簡潔であることを好むかについて長々と語ることもできますが、その代わりに、事実上すべての状況において私がどれだけ全く驚くほど簡潔であることを好むかについて、長ったらしい放談であなたを退屈させないように簡潔に語ることにします。

[拍手喝采]

ありがとうございます。私が言いたいのは、このようなページは Unix の世界では "man ページ"と呼ばれ、私はここに私なりに切り詰めた man ページを載せて、皆さんに読んで楽しんでもらおうということなのです。これらの関数の多くは、私が言っているよりもずっと汎用的なものですが、ここではインターネットソケットプログラミングに関連する部分のみを紹介するつもりです。

しかし、お待ちを!私の man ページの悪いところはそれだけではありません。

  • ガイドに記載されている基本的なことしか書かれていない不完全なものです。
  • 実際の世界には、これ以外にも多くのマニュアルページが存在します。
  • ご使用のシステムとは異なります。
  • ヘッダーファイルは、お使いのシステムの関数によって異なる場合があります。
  • お使いのシステムによっては、関数パラメータが異なる場合があります。

もし本当の情報が欲しいなら、ローカルの Unix man ページで man whatever と入力してチェックしてください。ここで、"whatever" は "accept" のような、信じられないほど興味のあるものです。(Microsoft Visual Studio のヘルプセクションにも同じようなものがあると思います。しかし、"man" の方が "help" よりも1バイト簡潔で良いのです。またもや Unix の勝利!)

では、もしこれらに欠陥があるのなら、なぜガイドに掲載するのでしょうか?理由はいくつかありますが、一番の理由は、(a) これらのバージョンはネットワーク・プログラミングに特化しており、実際のものよりも消化しやすいこと、(b) これらのバージョンには例が含まれていることです。

あ!あと、例題といえば、エラーチェックは、コードが長くなってしまうので、あまり入れないようにしています。でも、100% 失敗しないという確信がない限り、システムコールをするときは必ずエラーチェックをした方がいいです。それでもしたほうがいいです。