zlib の使い方
zlib 訳  zlib.h  readme  faq  index



zlib1.2.2 FAQ 訳

<以下の訳を読むにあたって>

     以下の訳は筆者が個人で訳したものです。
下記に間違い、誤訳等があったとしても当方は一切責任を負えません(英語苦手なので)。
正確な情報を求める方は必ず原文をお読みください。


FAQ
英文


                zlib についてのよくある質問


もしあなたの質問がここに無かったら zlib ホームページhttp://www.zlib.org を確認して下さい。新しい情報があるかもしれません。いちばん新しい zlib FAQ は http://www.gzip.org/zlib/zlib_faq.html にあります。


                Frequently Asked Questions about zlib


If your question is not there, please check the zlib home page
http://www.zlib.org which may have more recent information.
The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
1. zlib は 2000年対応してますか?

大丈夫。zlib は日付関連の操作をしません。

1. Is zlib Y2K-compliant?

Yes. zlib doesn't handle dates.

2. どこで Windows DLL バージョンが入手できますか?

zlib ソースを変更せずにDLL.は生成コンパイルできます。
zlib 配布ファイルにある win32/DLL_FAQ.txt を見て下さい。
DLLプリコンパイルの情報はzlibウェブサイトhttp://www.zlib.org で入手できます。

2. Where can I get a Windows DLL version?

The zlib sources can be compiled without change to produce a DLL.
See the file win32/DLL_FAQ.txt in the zlib distribution.
Pointers to the precompiled DLL are found in the zlib web site at
http://www.zlib.org.

3. zlib の Visual Basic インターフェースはどこで入手できますか?

* http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm
* zlib 配布ファイル中の contrib/visual-basic.txt
* zlib 配布ファイル中の win32/DLL_FAQ.txt
を見て下さい

3. Where can I get a Visual Basic interface to zlib?

See
* http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm
* contrib/visual-basic.txt in the zlib distribution
* win32/DLL_FAQ.txt in the zlib distribution

4. compress() が Z_BUF_ERROR を返します。

compress()関数を呼ぶ前にまず、圧縮バッファの長さが圧縮バッファのトータルサイズと同じであるか、ゼロで無いかを確かめてください。
Visual Basicは、このパラメータが値渡し("long型")ではなく、参照渡し("任意の型")であることを確認してください。



4. compress() returns Z_BUF_ERROR.

Make sure that before the call of compress, the length of the compressed buffer is equal to the total size of the compressed buffer and not zero. For Visual Basic, check that this parameter is passed by reference ("as any"), not by value ("as long").

5. deflate() や inflate() が Z_BUF_ERROR を返します。

関数を呼ぶ前に、avail_in と avail_out がゼロでないことを確かめてください。また、flush 変数をZ_FINISHにセットしてるとき、未処理の入力を完全に処理するのにavail_out に十分余裕があるかも確かめてください。
注意してほしいのは、Z_BUF_ERROR は重大なエラーではないということです・・・・deflate() や inflate() のもうひとつの呼び出し方なら入力や出力スペースを作れます。実際、Z_BUF_ERROR でstrm.avail_out にゼロが返ったときは、追加された出力が未処理かどうかを調べるのは不可能なので、関数の使い方次第になってしまうのは避けようがないかもしれません。

5. deflate() or inflate() returns Z_BUF_ERROR.

Before making the call, make sure that avail_in and avail_out are not zero. When setting the parameter flush equal to Z_FINISH, also make sure that avail_out is big enough to allow processing all pending input.
Note that a Z_BUF_ERROR is not fatal--another call to deflate() or inflate() can be made with more input or output space. A Z_BUF_ERROR may in fact be unavoidable depending on how the functions are used, since it is not possible to tell whether or not there is more output pending when strm.avail_out returns with zero.

6. zlib 文書 (マニュアルページ、その他.)はどこにありますか?

とりあえず zlib.h にあります。またFrancis S. Lin がzlib.htmlというWeb ページに変換してくれました。これをUnixスタイルのマニュアルページにしてくれるボランティアの方がいましたら、どうか私たち(zlib@gzip.org)に連絡ください。
zlib 使用例については example.c と minigzip.c ファイルにあります。

6. Where's the zlib documentation (man pages, etc.)?

It's in zlib.h for the moment, and Francis S. Lin has converted it to a web page zlib.html. Volunteers to transform this to Unix-style man pages, please contact us (zlib@gzip.org). Examples of zlib usage are in the files example.c and minigzip.c.

7. GNU autoconf や libtool 等々を なぜ使わないのですか?

なぜかというと、私たちは zlib をとても小さくシンプルなパッケージで保持したいのです。zlib は多くの設定を必要とせず、むしろ可搬性を高めたいのです。

7. Why don't you use GNU autoconf or libtool or ...?

Because we would like to keep zlib as a very small and simple package. zlib is rather portable and doesn't need much configuration.

8. zlib にバグを見つけました。

多くの場合、その手の不具合は zlib の不正使用であると思われます。どうか小規模のプログラムでその不具合を再現してみてください。そして私たちzlib@gzip.org宛てに相当ソースを送ってください。なお、数メガバイトのデータファイ ルを送る場合は、前もって連絡をください。

8. I found a bug in zlib.

Most of the time, such problems are due to an incorrect usage of
zlib. Please try to reproduce the problem with a small program and send the corresponding source to us at zlib@gzip.org . Do not send multi-megabyte data files without prior agreement.

9. "undefined reference to gzputc(gzputcへの参照が未定義です)"ってでるのはなぜですか?

以下のように "make test" で作ったとき

example.o(.text+0x154): undefined reference to `gzputc'
             ( :gzputcへの参照が未定義です)

/usr/lib
/usr/local/lib
/usr/X11R6/lib
のディレクトリ下に古いファイル libz.* を持っていないか確認してください。 古いバージョンはみな削除して、"make install"を行ってください。

9. Why do I get "undefined reference to gzputc"?

If "make test" produces something like

example.o(.text+0x154): undefined reference to `gzputc'

check that you don't have old files libz.* in /usr/lib, /usr/local/lib or /usr/X11R6/lib. Remove any old versions, then do "make install".

10. zlib に Delphi インターフェースがほしいです。

zlib 配布ファイル中の contrib/delphi ディレクトリを見て下さい。

10. I need a Delphi interface to zlib.

See the contrib/delphi directory in the zlib distribution.

11. zlib は .zip アーカイブを操作できますか?

zlib 自身だけでは無理です。zlib 配布ファイル中の contrib/minizip ディレクトリを見て下さい。

11. Can zlib handle .zip archives?

Not by itself, no. See the directory contrib/minizip in the zlib distribution.

12. zlib は .Z ファイルを操作できますか?

すみません、できません。自前で非圧縮や gunzip の子プロセスを作るか、そちら自身の非圧縮コードを対応させてください。

12. Can zlib handle .Z files?

No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt the code of uncompress on your own.

13. Unix 共有ライブラリはどうしたらmakeできますか?

make clean
./configure -s
make

13. How can I make a Unix shared library?

make clean
./configure -s
make

14. Unixで共有 zlib ライブラリをインストールするにはどうしたらいいですか?

上記の後:

make install

ですが、ほとんどの Unix 物は共有 zlib がインストール済みで売られています。 zlib の共有バージョンをインストールしてみたり、コンパイルしてトラブる前に、既にそれを有しているか確認すべきだと思います。もし #include <zlib.h> が可能ならばそれはもうあります。多分 -lz オプションがそれにリンクしてます。

14. How do I install a shared zlib library on Unix?

After the above, then:

make install

However, many flavors of Unix come with a shared zlib already installed.
Before going to the trouble of compiling a shared version of zlib and trying to install it, you may want to check if it's already there! If you can #include <zlib.h>, it's there. The -lz option will probably link to it.

15. OttoPDFについて質問があります。

私たちは OttoPDF の著作者ではありません。
著者本人はコチラ OttoPDF ウェブサイト:
ジョエル・ハインレイ jhainley@myndkryme.com.

15. I have a question about OttoPDF.

We are not the authors of OttoPDF. The real author is on the OttoPDF web site: Joel Hainley, jhainley@myndkryme.com.

16. zlib アドビ PDF ファイルの Flate データをデコードできますか?

できます。http://www.fastio.com/ (ClibPDF)http://www.pdflib.com/ を見て下さい。
PDF フォームを変更するには、http://sourceforge.net/projects/acroformtool/ を見て下さい。

16. Can zlib decode Flate data in an Adobe PDF file?

Yes. See http://www.fastio.com/ (ClibPDF), or http://www.pdflib.com/ .
To modify PDF forms, see http://sourceforge.net/projects/acroformtool/ .

17. なぜ、Solaris で、"register_frame_info not found (register_frame_infoが見つかりません)" というエラーがでますか?

Solaris 2.6 でzlib 1.1.4をインストールした後、zlibを使っているアプリケーションを実行するとこのようなエラーを生じます:

ld.so.1: rpm: fatal: relocation error: file /usr/local/lib/libz.so:
 (ld.so.1: rpm: 重大:再配置エラー:ファイル /usr/local/lib/libz.so:)
symbol __register_frame_info: referenced symbol not found
 (__register_frame_info シンボル: 参照シンボルが見つかりません)

__register_frame_info シンボルは zlib の一部ではありません。
C コンパイラ (cc や gcc)で生じたものです。zlibを使っていて、かつ不具合を抱えるアプリケーションは再コンパイルしなければなりません。この問題はSolaris特 有のものです。zlib のSolaris バージョンと zlib を使っているアプリケーション についてはhttp://www.sunfreeware.com を見て下さい。

17. Why am I getting this "register_frame_info not found" error on Solaris?

After installing zlib 1.1.4 on Solaris 2.6, running applications using zlib generates an error such as:

ld.so.1: rpm: fatal: relocation error: file /usr/local/lib/libz.so:
symbol __register_frame_info: referenced symbol not found

The symbol __register_frame_info is not part of zlib, it is generated by the C compiler (cc or gcc). You must recompile applications using zlib which have this problem. This problem is specific to Solaris. See http://www.sunfreeware.com for Solaris versions of zlib and applications using zlib.

18. 私が作るcompress/deflateを使ったファイルはなぜ gzip からエラーがでますか?

zlib フォーマット内のデータは compress と deflate 関数が作りますが、gzip フォーマットのものとは異なり互換性がありません。他方ではzlib にある gz〜関数 はgzip フォーマットを扱います。zlib と gzip フォーマットは両方とも同じ圧縮データフォーマットを内部で使っていますが、ヘッダとその後部を圧縮データが囲む点が異なります。

18. Why does gzip give an error on a file I make with compress/deflate?

The compress and deflate functions produce data in the zlib format, which is different and incompatible with the gzip format. The gz* functions in zlib on the other hand use the gzip format. Both the zlib and gzip formats use the same compressed data format internally, but have different headers and trailers around the compressed data.

19. わかりました。ではなぜ2つの異なるフォーマットがあるのですか?

gzip フォーマットは、ファイルひとつひとつにつき名前や最終更新日のようなディレクトリ情報をもつよう設計されました。
他方でzlib フォーマットは、インメモリや、通信回線アプリケーション用に設計されていて、整合性チェックはgzip より速く、さらにヘッダとその後部がかなりコンパクトです。

19. Ok, so why are there two different formats?

The gzip format was designed to retain the directory information about a single file, such as the name and last modification date. The zlib format on the other hand was designed for in-memory and communication channel applications, and has a much more compact header and trailer and uses a faster integrity check than gzip.

20. それはスゴイですね、ですがgzip ファイルはどうしたらインメモリで作れますか?

zlib フォーマットでdeflateInit2()を使う代わりにdeflate でgzip フォーマットを書き込むよう要求できます。inflateInit2()を使ってgzip フォーマットを inflateデコードすることもまたできます。さらなる詳細については zlib.h を読んでください。

注意ですが、特別なgzip ヘッダコンテンツ(例えば名前や変更日)は指定出来ません。gzip ヘッダ内にある情報を inflate が伝えることもありません。ヘッダのカスタマイズをしたり中にあるデータを見たりするために、未処理のdeflate と inflate命令及びcrc32()関数を使い、gzip エンコードとデコードを自分で行うことができます。ヘッダとその後部のフォーマットの詳細は gzip RFC 1952 (・・・日本版はこっち) を読んで下さい。

20. Well that's nice, but how do I make a gzip file in memory?

You can request that deflate write the gzip format instead of the zlib format using deflateInit2(). You can also request that inflate decode the gzip format using inflateInit2(). Read zlib.h for more details.

Note that you cannot specify special gzip header contents (e.g. a file name or modification date), nor will inflate tell you what was in the gzip header. If you need to customize the header or see what's in it, you can use the raw deflate and inflate operations and the crc32() function and roll your own gzip encoding and decoding. Read the gzip RFC 1952 for details of the header and trailer format.

21. zlib はスレッドセーフですか?

はい。ですがそれには、zlib が使うライブラリ・ルーチンも、アプリケーション指定のメモリ確保ルーチンもいずれもスレッド・セーフでなければなりません。zlibの gz〜 関数はライブラリ・ルーチンを使いますし、及びほとんどのzlib 関数がデフォルトのメモリ確保関数を使います。zlibの Init 関数はアプリケーション用カスタム・メモリ確保ルーチンを使えるようにできます。

もちろん、1度に1つのスレッドから、与えられたzlib や gzip ストリームなどの上で命令実行だけしてもよいでしょう。

21. Is zlib thread-safe?

Yes. However any library routines that zlib uses and any application-provided memory allocation routines must also be thread-safe. zlib's gz* functions use stdio library routines, and most of zlib's functions use the library memory allocation routines by default. zlib's Init functions allow for the application to provide custom memory allocation routines.

Of course, you should only operate on any given zlib or gzip stream from a single thread at a time.

22. zlib は商用アプリケーションに使えますか?

はい。zlib.h にあるライセンスの項目を読んで下さい。

22. Can I use zlib in my commercial application?

Yes. Please read the license in zlib.h.

23. zlib は GNU ライセンス下にあるんですか?

いいえ。zlib.h にあるライセンスの項目を読んで下さい。

23. Is zlib under the GNU license?

No. Please read the license in zlib.h.

24 ライセンスには改変ソース・バージョンは「明記」さればなりませんと書かれています。なので、要求に見合うように何を明 記したらいいですか?

zlib.h で #define されている ZLIB_VERSION と ZLIB_VERNUM を変更する必要があります。とりわけバージョン・ナンバーの終端文字を"f"に変える必要があり、同一文字列をZLIB_VERSIONに追加してくださ い。 x.x.x.f というバージョン・ナンバーは zlib 保全者ではない他者による変更のために予約されています。例えば変えようとしている基本 zlib バージョンが"1.2.3.4"のときは、zlib.h にある ZLIB_VERNUM を0x123fに、ZLIB_VERSION は"1.2.3.f-zachary-mods-v3"のような形に変えてください。また deflate.c と inftrees.c にあるバージョン文字列も更新できます。

改変ソースの配布にあたって zlib.hの中に、いやChangeLogでもREADMEでもいいんですが、変更日もつけてオリジナルであることと変更特性とを注意書きしてくださ い。オリジナル事項は少なくともあなたの名前(または会社名)を記入してください。あとヘルプやライブラリ発行などの連絡用にメール・アドレスも書き入れ てください。

zlib.h と zconf.h に従いコンパイル済みzlib ライブラリを配布することはソースを配布することでもあるということに留意しながら、 ZLIB_VERSION と ZLIB_VERNUM を変更して、あなたが全ソースを配布するようにzlib.hの中にオリジナルであることと変更特性を注釈してください。

24 The license says that altered source versions must be "plainly marked". So what exactly do I need to do to meet that requirement?

You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h. In particular, the final version number needs to be changed to "f", and an identification string should be appended to ZLIB_VERSION. Version numbers x.x.x.f are reserved for modifications to zlib by others than the zlib maintainers. For example, if the version of the base zlib you are altering is "1.2.3.4", then in zlib.h you should change ZLIB_VERNUM to 0x123f, and ZLIB_VERSION to something like "1.2.3.f-zachary-mods-v3". You can also update the version strings in deflate.c and inftrees.c.

For altered source distributions, you should also note the origin and nature of the changes in zlib.h, as well as in ChangeLog and README, along with the dates of the alterations. The origin should include at least your name (or your company's name), and an email address to contact for help or issues with the library.

Note that distributing a compiled zlib library along with zlib.h and zconf.h is also a source distribution, and so you should change ZLIB_VERSION and ZLIB_VERNUM and note the origin and nature of the changes in zlib.h as you would for a full source distribution.

25. zlib は、ビッグ・エンディアンやリトル・エンディアン アーキテクチャで動きますか?また圧縮データを相互変換できますか?

動きます、できます。

25. Will zlib work on a big-endian or little-endian architecture, and can I exchange compressed data between them?

Yes and yes.

26. zlib は、64ビットマシンで動きますか?

動くはずです。64ビットマシンでテスト済みで、32ビット限界のどのデータ・タイプも依存はありませんでした。
もし何か問題を抱えているのでしたら、不具合一式 zlib@gzip.org まで報告願います。

26. Will zlib work on a 64-bit machine?

It should. It has been tested on 64-bit machines, and has no dependence on any data types being limited to 32-bits in length.
If you have any difficulties, please provide a complete problem report to zlib@gzip.org

27. zlib は、PKWare データ圧縮ライブラリからデータを展開できるようにする予定はありますか?

ありません。PKWare DCL は PKZIP 及び zlib と完全に異なる圧縮データを使っています。しかし、不具合解決の糸口でしたら zlib の contrib/blast ディレクトリに見ることができます。

27. Will zlib decompress data from the PKWare Data Compression Library?

No. The PKWare DCL uses a completely different compressed data format than does PKZIP and zlib. However, you can look in zlib's contrib/blast directory for a possible solution to your problem.

28. 圧縮ストリーム内のデータにランダムアクセスできますか?

いいえ、きちんと準備してなければできません。圧縮するとき周期的にZ_FULL_FLUSHを使い、それらの時点で未処理のデータを書き込み位置のイン デックスを念入りに保持してあれば、それらの位置から展開スタートが可能です。Z_FULL_FLUSH の使いすぎは深刻な圧縮劣化になりうるので注意しなければなりません。

28. Can I access data randomly in a compressed stream?

No, not without some preparation. If when compressing you periodically use Z_FULL_FLUSH, carefully write all the pending data at those points, and keep an index of those locations, then you can start decompression at those points. You have to be careful to not use Z_FULL_FLUSH too often, since it can significantly degrade compression.

29. zlib は MVS, OS/390, CICS, その他で動きますか?

当方はよく知りません。が、これらのシステムでの成功報告は時々耳にします。そこでお願いです、これらの質問を受けたときに参照ができるようなパッチと命 令、レポートをください。敬具。

29. Does zlib work on MVS, OS/390, CICS, etc.?

We don't know for sure. We have heard occasional reports of success on these systems. If you do use it on one of these, please provide us with a report, instructions, and patches that we can reference when we get these questions. Thanks.

30. deflate フォーマットの私が理解できるような書き物や、inflate のバージョンのより簡単かつシンプルな読み物はありますか?

まず第一に、RFC 1951 を読んでください。第二はそうです、zlib のディレクトリ contrib/puff を見て下さい。

30. Is there some simpler, easier to read version of inflate I can look at to understand the deflate format?

First off, you should read RFC 1951. Second, yes. Look in zlib's contrib/puff directory.

31. zlib は何か特許を侵害しますか?

私たちの知る限り、侵害しません。事実、zlib の深部はまるごと自前です。
さらなる情報はコチラ:
http://www.gzip.org/#faq11

31. Does zlib infringe on any patents?

As far as we know, no. In fact, that was originally the whole point behind zlib. Look here for some more information:

http://www.gzip.org/#faq11

32. zlib は4 GB より大きなデータは扱えますか?

はい。どんな大きさのデータも正確に処理します。
inflate() や deflate() の各呼び出しはコンパイル時のunsigned int型の最大値の入出力チャンクに制限されますが、チャンク数は無制限です。
ですが注意してほしいのは、strm.total_in と strm_total_out カウンタは4 GBに制限されるかもしれないということです。
これらのカウンタは簡便のために用意されており、内部でinflate() や deflate() が使うことはありません。4 GB を超えてカウントしたinflate() や deflate() の各呼び出し後に、更新されたカウンタをアプリケーション自身で簡単にセットアップできます。
compress() 及び uncompress() は単一呼び出しなので4 GBに制限されるかもしれません。
gzseek() 及び gztell() もzlib のやり方に依存してコンパイルされているので4 GBに制限されるはずです。zlib.h にある zlibCompileFlags() 関数を見て下さい。

上記で"かもしれない、〜なはず"という言葉が数回あらわれますが、それはコンパイラのlong型が32ビットのとき4 GB制限があるからです。コンパイラのlong型が64ビットのときの限界はは16エクサバイトです。


1テラバイト=1000ギガバイト
1ペタバイト=1000テラバイト
1エクサバイト=1000ペタバイト

32. Can zlib work with greater than 4 GB of data?

Yes. inflate() and deflate() will process any amount of data correctly.
Each call of inflate() or deflate() is limited to input and output chunks of the maximum value that can be stored in the compiler's "unsigned int" type, but there is no limit to the number of chunks.
Note however that the strm.total_in and strm_total_out counters may be limited to 4 GB.
These counters are provided as a convenience and are not used internally by inflate() or deflate(). The application can easily set up its own counters updated after each call of inflate() or deflate() to count beyond 4 GB.
compress() and uncompress() may be limited to 4 GB, since they operate in a single call. gzseek() and gztell() may be limited to 4 GB depending on how zlib is compiled. See the zlibCompileFlags() function in zlib.h.

The word "may" appears several times above since there is a 4 GB limit only if the compiler's "long" type is 32 bits. If the compiler's "long" type is 64 bits, then the limit is 16 exabytes.

33. zlib のセキュリティに脆弱なところはありますか?

唯一、知られているものにgzprintf()の中の可能性があります。sprintf() や vsprintf() を使ってコンパイルされている zlib では、4Kを超える文字列スペース・バッファは保護されませんが、4Kを超えなければ gzprintf() で保証されます。一方でsnprintf() や vsnprintf()を使ってzlibがコンパイルされていた場合なら、脆弱にはなりません。 ./configure スクリプトで gzprintf() が sprintf() の不安定な部分を使うようにすれば警告が表示されます。またzlibCompileFlags() 関数は gzprintf() が使うsprintf()の種類の情報を返します。

もしsnprintf() や vsnprintf()を使わず、またそうしたいのであるなら、可般な実装がここにあります。

http://www.ijs.si/software/snprintf/

なるべく zlib の最新バージョンを使うよう注意してください。
1.1.3 バージョン及びそれ以前の主な脆弱点は2重解放でした。


上記の脆弱性は1.2.1以前のもののようです。
33. Does zlib have any security vulnerabilities?

The only one that we are aware of is potentially in gzprintf(). If zlib is compiled to use sprintf() or vsprintf(), then there is no protection against a buffer overflow of a 4K string space, other than the caller of gzprintf() assuring that the output will not exceed 4K. On the other hand, if zlib is compiled to use snprintf() or vsnprintf(), which should normally be the case, then there is no vulnerability. The ./configure script will display warnings if an insecure variation of sprintf() will be used by gzprintf(). Also the zlibCompileFlags() function will return information on what variant of sprintf() is used by gzprintf().

If you don't have snprintf() or vsnprintf() and would like one, you can find a portable implementation here:

http://www.ijs.si/software/snprintf/

Note that you should be using the most recent version of zlib. Versions 1.1.3 and before were subject to a double-free vulnerability.

34. zlib のJava バージョンはありますか?

おそらくご希望の zlib を使用するものはJavaのの中にあります。zlib は java.util.zip packageの中にJava SDKの一部として既に入れられています。でももし、 Java 言語で書かれたzlibバージョンを本当にお望みならzlib ホームページを見てみて下さい。
リンク:http://www.zlib.org/

34. Is there a Java version of zlib?

Probably what you want is to use zlib in Java. zlib is already included as part of the Java SDK in the java.util.zip package. If you really want a version of zlib written in the Java language, look on the zlib home page for links: http://www.zlib.org/

35. 文法チェック・オプションを最大まで上げるとコレやそのコンパイラやソース・コード解析から警告が出ます。あなたたちは まともなコードも書けないんですか?

ずいぶん昔、大学で私たちはあらゆるコンパイラで警告がでないようにしようとしましたが、諦めました。いくつかのコンパイラがほんとうにおバカさんで、そ れはまさに時間の浪費への始まりでした。なので今では単純に常にコードがちゃんと動くか確かめるだけです。

35. I get this or that compiler or source-code scanner warning when I crank it up to maximally-pedantic. Can't you guys write proper code?

Many years ago, we gave up attempting to avoid warnings on every compiler in the universe. It just got to be a waste of time, and some compilers were downright silly. So now, we simply make sure that the code always works.

36. zlib はどんな圧縮データ・フォーマットでも読み込みますか?(かなり古かったり、不可解だったりするフォーマットが今ココにあるとして)

多分、読み込めません。さまざまなフォーマットのポインタについてはcomp.compressionにある FAQ 及び関連ソフトウェアを見て下さい。

36. Will zlib read the (insert any ancient or arcane format here) compressed data format?

Probably not. Look in the comp.compression FAQ for pointers to various formats and associated software.

37. zlib で zip 暗号化/復号化するにはどうしたらいいですか?

zlib は暗号化をサポートしていません。オリジナルの PKZIP 暗号化はとても弱く、入手可能なプログラムで容易に破壊することができます。強力な暗号化を得たいなら既に zlib 圧縮に組み込まれているGnuPG http://www.gnupg.org/ をお使いください。
PKZIP と互換の「暗号化」については http://www.info-zip.org/ をご覧ください。

37. How can I encrypt/decrypt zip files with zlib?

zlib doesn't support encryption. The original PKZIP encryption is very weak and can be broken with freely available programs. To get strong encryption, use GnuPG, http://www.gnupg.org/ , which already includes zlib compression.
For PKZIP compatible "encryption", look at http://www.info-zip.org/

38. "gzip" と "deflate" のHTTP 1.1エンコード の違いはなんですか?

"gzip" は gzip フォーマット、そして "deflate" は zlib フォーマットです。それらは混乱を避けるため、多分、未処理の圧縮データ付きで"zlib"第二関数によばれます。一方でHTTP 1.1 RFC 2616はRFC 1950で"deflate"エンコード変換についての zlib の仕様を正確に示しています。RFC 1951で は deflate の仕様について異常な生成や未処理の deflate データ待ちについてのレポートがサーバとブラウザでありました、特に目立ってたのがマイクロソフトです。 ですが、たとえそうであっても、zlib フォーマットを使用する"deflate"エンコード変換はより効率的な手法ではあり(実際まさにそのために zlib フォーマットは設計されました)、"gzip"エンコード変換の使用はHTTP 1.1 著者側による不幸な命名のおかげで多分より安全になってます。

結論: HTTP 1.1 エンコードには gzip フォーマットを使いましょう。

38. What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?

"gzip" is the gzip format, and "deflate" is the zlib format. They should probably have called the second one "zlib" instead to avoid confusion with the raw deflate compressed data format. While the HTTP 1.1 RFC 2616 correctly points to the zlib specification in RFC 1950 for the "deflate" transfer encoding, there have been reports of servers and browsers that incorrectly produce or expect raw deflate data per the deflate specficiation in RFC 1951, most notably Microsoft. So even though the "deflate" transfer encoding using the zlib format would be the more efficient approach (and in fact exactly what the zlib format was designed for), using the "gzip" transfer encoding is probably more reliable due to an unfortunate choice of name on the part of the HTTP 1.1 authors.

Bottom line: use the gzip format for HTTP 1.1 encoding.

39. zlib は PKWare に導入された新しい"Deflate64"フォーマットをサポートしていますか?

いいえ、してません。PKWare は旧圧縮フォーマットを所有しているようには書かれていないので、一見独自でフォーマットを維持決定されているように見えます。
ともかく、圧縮向上は現代的な手法ととても控えめに比較されますが、その実装に尽力したところであまり意味がありません。

39. Does zlib support the new "Deflate64" format introduced by PKWare?

No. PKWare has apparently decided to keep that format proprietary, since they have not documented it as they have previous compression formats.
In any case, the compression improvements are so modest compared to other more modern approaches, that it's not worth the effort to implement.

40. 当方の製品であなたのソフトウェアを使っておりますので、これらの長〜くて退屈な法文書にサインして、FAXで返信して 頂けますか?

やだね。あっちいけ!シッシ!

40. Can you please sign these lengthy legal documents and fax them back to us so that we can use your software in our product?

No. Go away. Shoo.











−上記の訳中でwarningって言葉が何回かでてきたのでコ ラムします−
warningは「ワーニング」?「ウォーニング」?って論争してる人たちへ

発音記号からすれば「ウォーニング」ですが、耳できけば「ワ-ニン」に聞こえるようです。
waterも発音記号からみれば「ウォーター」だが耳で聞けば「ワ-ラッ」ウォーターなんてネイティブは言いません。

個人的な推測ですが、これらは耳からはいった英語と、文章(+発音記号)ではいってきた英語の差だと思います。warningを「ワーニング」と発音する 世代はゲームとか映画とかで外人がwarningを発音してんのを聞いたせいだと思います。「ウォーニング」派は机上派(というか翻訳家に多い)と思いま す。

の 発音は口先の形を「オ」にしたまま口の奥の空間は「ア」のように大きくひろげて低く強く響かせる音です。アゴを「オ」のようには下げませ ん。
単独では「オ」の音に近くなりますが「w」と組み 合わせると「ワ」の音に近くなるようですが、
もう少し正確に言おうとすれば「オ」と「ア」の間みたいな話です。
でもまたイギリス英語は「ウォ」に近いかもしれません。

結論:
「ワーニング」も「ウォーニング」もすでに日本語である。
理由は日本じゃどちらでも通用するけど、ネイティブにゃどちらも通用しないから。もう和製。残念。


そもそも英語の発音をカタカナ表記であ〜だこ〜だ言ってもしゃーない と思います。
smooth だってスムースをスムーズに直したところで結局 th は「サ行」のままかいっていうレベル。

「目くそ鼻くそを笑う」です。

もうどっちだっていいです。

英会話いこう。
映画も字幕で見よう。



戻る