2011-08-08 19 views
1

私はシステムによって可能な限り空きメモリを得ようとしています。これはシステムに依存しません。Cのシステム全体のメモリを取得

議論を開始するには、ページサイズを取得するgetpagesize()メソッドを提案することができます。誰でもメモリページの数が良いと助けることができます。

+0

"システムに依存しない"というのは、メモリがCの標準で非常に抽象的にしか見えないということを考えると、大きなオーダーです。 –

+1

関連性があります:http://stackoverflow.com/questions/2513505/how-to-get-available-memory-c-g – Timo

答えて

5

明らかにシステムに依存しているため、これを行うシステムに依存しない方法はありません。

3

これをシステムに依存しない方法で行う方法はありません。言語には、メモリページの概念、または格納場所と格納方法がありません。

1

「システムに依存しない」とは、OSに依存しないことを意味する場合、すべてのプラットフォームで動作する単一のコマンドを見つけることは本当に疑問です。 Windowsでは

  • は、私はおそらく、迅速かつ汚いアプローチ(構文解析は/ proc/meminfoの)

のためにのために行くだろう、Linuxの

  • GlobalStatusMemoryExを使用する:あなたは、特定のシステムが必要な場合

    Linuxでもsysconfの機能を試すことができますunistd.h

  • 2

    メモリの取り扱いはシステムに依存しているだけでなくすでに述べたように、「メモリの総量」などのようなものは、多くの場合、明確な概念として存在しないだけである。そこ

    • 物理メモリがあるが、それは、ディスク上の
    • ページメモリによってバックアップされるため、通常は、ハード制約されていないが、多くの場合、その構成に依存しているので、どちらかのハードの制約ではありません
    • の仮想メモリは、上記の2つの方法ではバックアップできない場合でも、アドレスが持つことができ、OSによって自由に割り当てられている異なる「数字」を記述します。
    関連する問題