68user's page 掲示板

Prev< No. 4070> Next  [最新発言に戻る] [過去ログ一覧]
No. 4070 # たなか 2004/12/28 (火) 00:04:48
「ネットワークプログラミングの基礎知識」で勉強させていただいています。
kqueue の説明をみて早速いぢってみました。
サンプルでは kqueue() の戻り値に対して、終了時の処理が何もされていません。
man で調べたたところ、kqueue() の戻り値はファイルデスクリプタと記されています。
init kq = kqueue();
close(kq);
としても、close の戻り値が -1 で閉じることができませんでした。
なので、
init kq = kqueue();
close(kq);
init kq = kqueue();
close(kq);
とすると、kq は 1 回目が 9、2 回目が 10 といったようにインクリメントされてしまいました。
fcntl で kq の情報を取得しようとしてもすべての戻り値は -1 でした。
なんとなく、ファイルデスクリプタとして扱えていないような気がします。
当方は Mac OS X 10.3.7(BSD 4.4 ベースの Darwin) です。
本当の BSD なら、close できるものなのでしょうか。
もし、kqueue の説明を追加する予定があるようでしたら、close または、それに代わる処理も追加してもらえると大変助かります。

Prev< No. 4070> Next  [最新発言に戻る] [過去ログ一覧]