0

gdbを使用して新しい (まだ存在しない) 圧縮ログ ファイルを開こうとしている合計メモリ フットプリントが約 100 MiB のプログラムがあります (上部の VM サイズ、停止中) gzopen。システムには 6 GB のメモリが完全に空いており (キャッシュを保持していない)、ファイルシステムに多くのスペースがあるにもかかわらず (それは であることはわかっています)、これは にerrno設定すると失敗します。これを引き起こす可能性のあるもっとあいまいな問題はありますか? ライブラリ内の何かが、正当な理由もなく、何ギガバイトものメモリを偶発的に割り当てていますか?ENOMEMENOSPC

注記として、私の ulimits は無制限に設定されています。

4

2 に答える 2

0

いいえ、zlib には 1 つか 2 つ以上の MiB を割り当てるものはありません。zlib は errno をゼロに設定するだけです。それ自体では、errno を ENOMEM に設定することはありません。それが呼び出すライブラリ関数は、. どのバージョンの zlib を使用していますか?

于 2012-06-10T14:54:20.753 に答える
0

zlib が返されていないことが判明しましたENOMEMw+指定された gzip ファイルを同時に読み書きできないため無効なmode 引数を渡したために救済されました。は、以前のライブラリ/システム コールからENOMEMたまたま座っていたものから来ました。errno

于 2013-03-05T20:06:19.853 に答える