68user's page 掲示板

Prev< No. 4359〜4364> Next  [最新発言に戻る] [過去ログ一覧]
No. 4359 # 68user 2005/11/08 (火) 03:00:02
>>4358 68user
> fdclose して fclose したときに
「fdopen して fclose したときに」の誤りでした。

ちなみに「UNIX ネットワークプログラミング第2版」からは、この件についての
記述を読み取ることはできませんでした。

No. 4360 # マーブル 2005/11/08 (火) 04:30:12
>>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)

No. 4361 # マーブル 2005/11/08 (火) 04:33:00
>>4360 マーブル
うゎ、アドレス込みで貼っちまった、ハズカシィ

No. 4362 # マーブル 2005/11/08 (火) 04:48:39
>>4360 マーブル
opensolarisがsolarisとどれだけ違うかわかりませんが、
http://cvs.opensolaris.org/source/xref/on/usr/src/lib/libc/port/stdio/fdopen.c#64
fdの値は単純に渡されているように見えます。
(↑のサイト使い安くて良く使ってます、BSDでこのような感じのページご存知ですか?)

No. 4363 # 68user 2005/11/08 (火) 13:23:30
>>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 のソースを見られるところは知りませんでした。今後活用させて
いただきます。

No. 4364 # がちゃぴ 2005/11/08 (火) 15:45:39
初めましてWindowsユーザですが、仕事上 LinuxやCVSを使うことがあります。
コマンドをなかなか覚えられなくて、いつも参考にさせて頂いています。

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