On 7/11/07, Rask Ingemann Lambertsen <rask@xxxxxxxxxx> wrote:
On Tue, Jul 10, 2007 at 05:48:49PM -0400, LWATCDR wrote: > > And now for a simple question. How the heck to I find out how much > free memory I have in c? The short answer: You don't. > None of the programmers at my office know because we haven't needed to > check for free memory for many years. The longer answer: No system with multitasking can answer that question in any useful way because by the time the return value reaches the tasks which wants to know, the value is already outdated.
taskman.exe seems to do it pretty well on a Win32 platform. Total physical memory, total physical available memory, system cache, kernel memory, etc etc. The value isn't outdated on the order of gigabytes or hours. It may not be 100% deterministic, but to say that you can't do it in any useful way would imply that numeroud system tools that we have at our disposal are totally useless. The reality is that you need to find the right system API for whatever environment you are in. Windows provides that, and I'm sure others do, too. A simple `cat /proc/meminfo` in a linux system, for example, will provide all of this data and tons more.