|
>>4358 68user > fdclose して fclose したときに 「fdopen して fclose したときに」の誤りでした。 ちなみに「UNIX ネットワークプログラミング第2版」からは、この件についての 記述を読み取ることはできませんでした。 |
|
>>4359 68user 機種依存等深く考えずに書き込んでしまって申し訳ございません。 また知合いに話せる人がいない為に決めつけたような書き込みになってしまったこともお詫びします。 基本的にFILE構造体にfileディスクリプタが含まれているものと理解していたもので、 fclose時に連動してcloseされるかな?と単純に考えてしまいました。 trussで確認した結果が以下でcloseされているようでした(これおもしろいですね) SunOS eibw23 5.9 Generic_112233-03 sun4u sparc SUNW(Solaris8か9) ----------------------------------------------------------- read(0, 0xFF3414EC, 1024) (sleeping...) read(0, "\n", 1024) = 1 llseek(3, 0, SEEK_CUR) = 0 close(3) = 0 read(0, 0xFF3414EC, 1024) (sleeping...) read(0, "\n", 1024) = 1 _exit(0) |
|
>>4360 マーブル うゎ、アドレス込みで貼っちまった、ハズカシィ |
|
>>4360 マーブル opensolarisがsolarisとどれだけ違うかわかりませんが、 http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/port/stdio/fdopen.c#64 fdの値は単純に渡されているように見えます。 (↑のサイト使い安くて良く使ってます、BSDでこのような感じのページご存知ですか?) |
|
>>4360 マーブル 昨日は変なことを書いてしまいました。fclose したんだから close するのは 当然ですよね。まぁ fdopen したものはフラッシュだけ行って close しない 実装があっても不思議ではないですが、素直に考えれば close するはず。 よって、125行目の close は削除します。 >>4362 マーブル > (↑のサイト使い安くて良く使ってます、BSDでこのような感じのページご存知ですか?) 普通の cvsweb でよければ、以下のものが cvsgraph が組み込まれているのでよく使います。 http://cvsweb.allbsd.org/cvsweb.cgi/src/lib/libc/stdio/fdopen.c ソース閲覧なら GLOBAL を使ったFreeBSD Source Code Tour が便利ですが、ファイル名が ころころ変わるので URL を保存しておいても役に立たないのがが困りものです。 http://snapshots.jp.freebsd.org/tour/ http://snapshots.jp.freebsd.org/tour/current/userland/cgi-bin/global.cgi?pattern=fdopen&id=&type=definition http://snapshots.jp.freebsd.org/tour/current/userland/S/9687.html#53 OpenSolaris のソースを見られるところは知りませんでした。今後活用させて いただきます。 |
|
初めましてWindowsユーザですが、仕事上 LinuxやCVSを使うことがあります。 コマンドをなかなか覚えられなくて、いつも参考にさせて頂いています。 |