- 442 名前:441 mailto:sage [2010/04/25(日) 11:00:58 ]
- >426
>> >(1)の場合は、可変部の情報を含めサイズ情報を渡しません。 >> これは無理。 >いいえ。無理ではありません。 >例えば、関数内でrecv()を使ってネットワークからデータを受信する場合など、処理を完了して初めてデータのサイズが確定することがあります。 OK.あなたと私では、視点のレベルが違っていた。 私の視点は事前にサイズがわからない場合も、とりあえずバッファを用意しておいて、 読んでみないことには知りようがない、という意味だったのです。recvそのものの レイヤーです。読んでみたあとはサイズがわかる、というのはそうですね。 議論はあくまでも一般論です。個別では理想的な実装ができないかもしれません。 余談ですが、メッセージループの処理ならば一般的には、下記のように書くと思います。 擬似コードです。 for (;;) { recvMsg(pMsg); /* メッセージに応じた処理 */ freeMsg(pMsg); } これはメッセージを受けるところと、最後に解放するところでリソース管理レベルを そろえています。
|

|