[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00607] Re: 仕切り直します。
- Subject: [FDclone-users:00607] Re: 仕切り直します。
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Wed, 04 Oct 2006 01:20:30 +0900
しらいです。
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」構成を他の環境に再現してみて、
現象の再現性を検証しようという訳です。この後の検証は小島さん
の方でお願い出来ますか?
しらい たかし