Programación General > C/C++
Sacar memoria y disco libre - Linux
Locoarts3113:
Hola gente,
estoy trabajndo en C y necesitaria SOLAMENTE obtener los datos de la memoria y disco libre que tengo en el sistema operativo DEBIAN (linux).
La verdad estuve buscando un monton en internet y no encontre nada al respecto...espero de su gran ayuda!!
Estuve viendo la funcion getrusage pero no la entendi ni un poco.
GRACIAS
m0skit0:
El fichero /proc/meminfo tiene la información sobre la memoria. Sólo tienes que buscar la que te interesa (un parseo muy sencillo).
Para el espacio en disco, statvfs() (mira la página del manual).
Locoarts3113:
--- Cita de: "m0skit0" ---El fichero /proc/meminfo tiene la información sobre la memoria. Sólo tienes que buscar la que te interesa (un parseo muy sencillo).
Para el espacio en disco, statvfs() (mira la página del manual).
--- Fin de la cita ---
No me dejan utilizar parseo para obtener los datos, tengo que usar alguna funcion u otra cosa..
Gracias igual
m0skit0:
--- Cita de: "Locoarts3113" ---No me dejan utilizar parseo para obtener los datos, tengo que usar alguna funcion u otra cosa..
--- Fin de la cita ---
Como te digo, para el espacio en disco, tienes statvfs. Que yo sepa no hay ninguna llamada al sistema que te devuelva la memoria libre en todo el sistema, así que tendrás que usar otro mecanismo (como mirar en /proc/meminfo, o llamar a utilidades como free o vmstat a través de system() -que al fin y al cabo lo que hacen estas utilidades es mirar en /proc/meminfo-. Y no veo por qué no puedes mirar en /proc/meminfo puesto que para eso está <_<
También existen formas más cutres como intentar reservar memoria cada vez más grande hasta que el sistema devuelva error (en un bucle). Esto es una solución muchísimo peor.
Locoarts3113:
--- Cita de: "m0skit0" ---
--- Cita de: "Locoarts3113" ---No me dejan utilizar parseo para obtener los datos, tengo que usar alguna funcion u otra cosa..
--- Fin de la cita ---
Como te digo, para el espacio en disco, tienes statvfs. Que yo sepa no hay ninguna llamada al sistema que te devuelva la memoria libre en todo el sistema, así que tendrás que usar otro mecanismo (como mirar en /proc/meminfo, o llamar a utilidades como free o vmstat a través de system() -que al fin y al cabo lo que hacen estas utilidades es mirar en /proc/meminfo-. Y no veo por qué no puedes mirar en /proc/meminfo puesto que para eso está <_<
También existen formas más cutres como intentar reservar memoria cada vez más grande hasta que el sistema devuelva error (en un bucle). Esto es una solución muchísimo peor.
--- Fin de la cita ---
Lo que yo necesito hacer es un programa en C que me devuelva la memoria libre en ese momento. Ejemplo:
int main() {
...
funcion_memoria_libre()
..}
y que me devuelva ponele: 512mb
GRACIAS
Navegación
[#] Página Siguiente
Ir a la versión completa