[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00607] Re: 仕切り直します。



 しらいです。

 Tiger/x86 が PC/AT な互換機でも普通に使えると楽に検証出来
るんだけどなー。

In Message-Id <20061003235300.001709.09b6af73@isis.ocn.ne.jp>
        yuji tamura <yuji@isis.ocn.ne.jp>さんwrites:
> こんばんは、田村です。

> 	char buf[MAXNAMLEN + 1024];
> 
> でしょうか?

 「buf[1024]」ってことだったんですが、まぁこれでも十分でし
ょう。


> すみません、これは config.h に3行追加した状態での事でしょうか?
> もしそうなら、
> 
> /Users/yuji/Documents/
> において、
> 「12 test2/」
> と言うディレクトリ名が消える現象は確認しました。

 ほぅ消えましたか。となると MAXANMLEN の値は一体幾らだった
んでしょうね。この値が 10 や 20 だとすると、UNIX の大前提と
している常識が幾つも崩れてしまうので大変ですねー。
 以前、func.h に MAXPATHLEN の記述を追加したと思いますが、
これと同じことを MAXNAMLEN でもやってみましょうか。func.h の
一番最後に以下の 2 行を追加して下さい。
	#undef	MAXNAMLEN
	#define	MAXNAMLEN	255

 これを加えて幾つかの組合せを試してみて下さい。
	a) readfilelist() の変更
	b) func.h の変更
	c) config.h の変更
として、素の 2.09 に対して a, a+c, b, b+c の組合せを試します。
 既に a+c を確認しているようですから後残り 3 組ですね。再現
性が良くないようなので根気強く試して下さい。

 並行して [FDclone-users:00579] で MAXPATHLEN の値を調べた
のと同様の手法で MAXNAMLEN の値も調べておきましょうか。

---- Cut Here ----
#include <stdio.h>
#include <dirent.h>
main()
{
	printf("%d\n", MAXNAMLEN);
}
---- Cut Here ----

# Darwin の man page を Intetnet 上で探してみた限りでは、
#MAXNAMLEN = 255 らしいんですけどねー。


> >  まずは以下の URL から GNU malloc の tar ball を入手して展
> > 開します。そのまま make 一発で libmalloc.a が出来上がる筈で
> > す。
> 
> すみません、これが make 出来ません。
> sys/vlimit.h が無いためにエラーになっている、のでしょうか?

 んー、この malloc は結構古い実装ですからねー。最新の glibc
から malloc() だけ拾って来るといいんでしょうけど、大変そうな
ので sys/vlimit.h を作ってしまいましょうか。
 以下を /usr/include/sys/vlimit.h として用意するか、もしく
は malloc を展開した directory に用意して mem-limits.h の方
を「#include "vlimit.h"」と書換えて下さい。

---- Cut Here ----
#define	LIM_NORAISE	0
#define	LIM_CPU		1
#define	LIM_FSIZE	2
#define	LIM_DATA	3
#define	LIM_STACK	4
#define	LIM_CORE	5
#define	LIM_MAXRSS	6
#define	INFINITY	0x7fffffff
---- Cut Here ----

 もしくは、Makefile に書いてあるとおりに、「USG」を有効にし
て make してみるのもいいかも。
 Makefile に「#CPPFLAGS = -DUSG」って行があるので、この行頭
の「#」を削除して make するとうまく行くかも知れません。最近
は BSD も System V に近くなってるので。


> 「0x9e5d0,0x9e5d8」でした。

 これは期待通りの値ですね。では Xreaddir() は正しく動いてい
そうです。


> >「/User2/yuji/Documents/10 blog/」でも再現します?>田村さん
>        ^
> 「/User2/」で良いんですよね、素の v2.09 で試しましたが、
> 消えるのが確認できたのは日本語を含むファイル名だけでした。
> そのかわりと言っては何ですが、同じようなディレクトリ構成にして
> (全く同じでは無い)
> 
> 「/User2/yuji/Documents/」において
> 「.localized」と言うファイル名、
> 「10 blog/」や
> 「11 98/」と言うディレクトリ名が消えるのは確認できました。

 「/Users」で始めてしまうと OS 標準の directory 構成になっ
てしまうので、「/Users 直下は yuji 以外削除する」とか言われ
ても難しいと思います。
 なので自由にいじれるように「/User2」で実験します。この直下
には「yuji」だけ置いて下さい。まぁ多少複雑な構成になっても構
わないんですが、「/User2」以下の構成を完全に再現可能なように
directory 構成を書いて下さい。
 その上で、全く同じ「/User2」構成を他の環境に再現してみて、
現象の再現性を検証しようという訳です。この後の検証は小島さん
の方でお願い出来ますか?

                                               しらい たかし