>>118
他にも socket を使ってプログラムしたいとしよう。
この関数(群)は、サーバー側でもクライアント側にも用いることが出来るが、
それぞれで使い方が結構違う。
サーバー側では、listen, bind, accept などを組み合わせなくてはならないし、
acceptは、元の socket fd とは別に新たな socket fd を返してくる。
それらがどう違うのかを理解するのは、ドキュメントだけで理解するのは
難しく、サンプルがほぼ必須となる。
また、Windows 板の socket の WinSock も有る程度の互換性があるが、
select 文と全く同じものは WinSock には存在しない。
また、CGI サーバーを作ろうとすれば、プロセスの生成とパイプでのせつぞくが必要に
なるが、その辺りは、LinuxとWindows で似ているところもあるが、混乱を招き、
まともな互換性が無い。Linuxにはforkとdupがあるが、Windowsにはforkは無いし、
dupもDuplicateHandleであるし、ハンドルがWindowsではHANDLE型なのに対して
Linuxは、file descriptorである。dupとDuplicateHandleでその違いが出てくる。
fork文の有る無いは非常に大きな問題を生み、プログラムのスタイルが全く違ってくる。
また、パイプに関して言えば、Linuxでは、相手型が待機状態かそうでないかを判定したり、
端末かファイルか、パイプのバッファに残りバイトがあるか、または、相手が閉じたか
まだ開いてイルカなどを細かく調査できるが、Windowsでは基本的に出来無い事が多い。
また、Linuxでは、TIME OUT 付きの同期読み込み関数があるが、Windowsでは
同期読み込みには TIME OUT を利用できない。そこで、非同期読み込みなる独特の
やり方を使うか、または、マルチスレッドにして、裏スレッドで無限待機状態
にして、表スレッドでフラグなどでそれを監視してなんとかする、などの方法を
採る必要がある。
このような複雑なことを果たして、そんなすぐにAIができるようになるだろうか。