obtenir la mémoire libre dans un programme C sous linux
Posted novembre 27th, 2007 by uxmalà partir de maintenant je vais poster quelques petits bouts de code trucs et astuces utiles ou pas, à venir piocher quand j’en ou vous en aurez besoin, illustres anonymes :)
<code class="prettyprint">
long get_freemem()
{
long m_total, m_free; /* m_total est sympa aussi */
FILE *file = fopen("/proc/meminfo", "r");
fscanf(file,"MemTotal: %lu kB MemFree: %lu kB", &m_total, &m_free); fclose(file);
return m_free*1000;
}
</code>
Par contre c’est la mémoire libre en comptant l’espace occupé par le cache système, donc ça affiche une valeur parfois très petite quand le système tourne depuis longtemps et qu’il n’est pas très utilisé, mais normalement la mémoire occupée par le cache est disponible pour vos programmes sans problèmes (après, est-ce ce que c’est une bonne idée de remplir un max la mémoire.. pas sur ^^)
il faut peut-être alors faire un petit calcul avec MemTotal ou d’autres.. je sais pas, je me sert plus de de cette fonction désolé ;)
Pas de commentaire