6

アプリケーションのモジュールの 1 つで、calloc() が失敗し、NULL が返されます。割り当てようとしているメモリの量は、9292 バイトの構造です。オペレーティング・システムは AIX 7.1 で、VIOS 2.2.1.3 を実行しています。

マシンには 2 GB 以上の RAM が搭載されており、メモリ不足の問題はないようです。問題のあるボックスと同じ構成を持つ他のボックスの 1 つで、同じアプリケーション モジュールが正常に動作しています。以下は、両方のボックスからのメモリの抜粋であり、同じです。

作業ボックス:

RLIMIT_AS (無限) (無限)
RLIMIT_CORE 1073741312 (無限)
RLIMIT_CPU (無限) (無限)
RLIMIT_DATA 134217728 (無限)
RLIMIT_FSIZE (無限) (無限)
RLIMIT_NOFILE 2000 (無限)
RLIMIT_RSS 33554432 (無限)
RLIMIT_STACK 33554432 2147483646

問題のあるボックス:

RLIMIT_AS (無限) (無限)
RLIMIT_CORE 1073741312 (無限)
RLIMIT_CPU (無限) (無限)
RLIMIT_DATA 134217728 (無限)
RLIMIT_FSIZE (無限) (無限)
RLIMIT_NOFILE 2000 (無限)
RLIMIT_RSS 33554432 (無限)
RLIMIT_STACK 33554432 2147483646

このボックスで 9292 バイトでも calloc() が失敗する理由が本当にわからないので、私にはわかりません。

ありがとう

4

1 に答える 1

1

calloc(1、sizeof(ifp_handle_t));を試してください。calloc(sizeof(ifp_handle_t)、1);の代わりに 間違っているかもしれませんが、パラメータを逆にしたようです。

于 2012-11-06T13:38:59.963 に答える