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

[FDclone-users:00519] Re: FDclone でファイルサイズが 0 と表示される



 しらいです。

In Message-Id <OFAA5DDD20.2A13AE04-ON4925716F.002D934B@tky.lightwell.co.jp>
        SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>さんwrites:
> 潮田です。

> ただ、反応がかなり鈍くなりますので、ご了承ください。

 了解しました。鈍いのはいいんですが無くなるとまずいので、定
期的に ICMP echo を投げることにしましょう。


> ( sscanf2() に %u/%g が来てましたが、 AIX の tar は
>   ブランク区切りみたいです)

 そうです。AIX の場合は tar 対策に以下のような patch も必要
になります。format に機差の無い lha 辺りで試して頂けると確実
かと。

---- Cut Here ----
diff -u ../old/FD-2.08b/archive.c ./archive.c
--- ../old/FD-2.08b/archive.c	Thu Mar 30 00:00:00 2006
+++ ./archive.c	Wed Apr 26 14:33:43 2006
@@ -78,6 +78,7 @@
 	"%a %l %u %g %s %m %d %{yt} %*f",	/* pax */
 	"%10a %u/%g %s %m %d %t %y %*f",	/* tar (UXP/DS) */
 	"%9a %u/%g %s %m %d %t %y %*f",		/* traditional */
+	"%a %u %g %s %m %d %t %y %*f",		/* AIX */
 	"%a %u/%g %m %d %t %y %*f",		/* IRIX */
 #endif	/* !MSDOS */
 	NULL
---- Cut Here ----

 これを加えることで size が正しく表示されるようなら、off_t
の幅に依存する問題は解消したということですね。
 もしそういうことなら、結果オーライなので printf debug は必
要ありません。念の為に 2.08b からの差分をどこかに置くので、
それで最終確認して終結としましょう。
 そういう問題じゃなくてやはり sscanf2() の中で何か正しくな
い挙動が見られるようであれば、もう少し頑張って追ってみて下さ
い。この辺で肝となる変数は u, len, mask 辺りでしょうか。


> どうせ、 sscanf2() の中の動きは理解できないので、 I/O から
> なにか分からないと眺めているのですが、この場合の呼び出し側は
> readfileent() の理解であってますでしょうか。

 archive file のサイズに関してはそうですね。case 's' の部分
がサイズ取得部分です。フォーマット文字列の「%s」ですね。


> この部分ですが、 uid には 203 が戻りますが、 cp は NULL が
> 戻ります。
> ("%-*d%$" が '$' で終わっているから?)

 sscanf() に対する sscanf2() の独自拡張で、「%$」は文字列末
尾に match します。「%u」に相当する部分の文字列は、後ろに数
字以外の文字があっては駄目ということですね。

                                               しらい たかし