📄 memoria.cpp
字号:
/* LiMon-Server| Copyright (C) 2006 Marcelo Busico|| Author: Marcelo Busico marcelobusico@gmail.com|| This program is free software which I release under the GNU General Public| License. You may redistribute and/or modify this program under the terms| of that license as published by the Free Software Foundation; either| version 2 of the License, or (at your option) any later version.|| This program is distributed in the hope that it will be useful,| but WITHOUT ANY WARRANTY; without even the implied warranty of| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the| GNU General Public License for more details. Version 2 is in the| LICENSE.txt file in the top level directory of this distribution.| | To get a copy of the GNU General Puplic License, write to the Free Software| Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*//* Implementacion de la libreria que lee el Estado de la Memoria Fisica */#include "memoria.h"#include "rutas.h"#include <stdio.h>#include <string.h>#include <stdlib.h>//ConstructorEstadoMemoria::EstadoMemoria(){ FILE *f; //Puntero a archivo char ejecutable[100]; //Para ejecutar el Script char buf[1024]; //Resultado del Script //Ruta del script strcpy(ejecutable,RUTA_SCRIPTS); //Nombre del script strcat(ejecutable,"memoria.sh"); //Ejecuta el script system(ejecutable); // Memoria TOTAL //Sale si no puede abrir el archivo if ((f = fopen("/tmp/limon-memoria-total", "r")) == NULL) { strcpy(cadenaEstadoTotal,""); strcpy(cadenaEstadoLibre,""); strcpy(cadenaEstadoBuffer,""); return; } if(fgets(buf, sizeof(buf), f)!=NULL) strcpy(cadenaEstadoTotal,buf); else strcpy(cadenaEstadoTotal,""); //Cierra el archivo fclose(f); // Memoria LIBRE //Sale si no puede abrir el archivo if ((f = fopen("/tmp/limon-memoria-libre", "r")) == NULL) { strcpy(cadenaEstadoTotal,""); strcpy(cadenaEstadoLibre,""); strcpy(cadenaEstadoBuffer,""); return; } if(fgets(buf, sizeof(buf), f)!=NULL) strcpy(cadenaEstadoLibre,buf); else strcpy(cadenaEstadoLibre,""); //Cierra el archivo fclose(f); //Memoria en BUFFER //Sale si no puede abrir el archivo if ((f = fopen("/tmp/limon-memoria-buffer", "r")) == NULL) { strcpy(cadenaEstadoTotal,""); strcpy(cadenaEstadoLibre,""); strcpy(cadenaEstadoBuffer,""); return; } if(fgets(buf, sizeof(buf), f)!=NULL) strcpy(cadenaEstadoBuffer,buf); else strcpy(cadenaEstadoBuffer,""); //Cierra el archivo fclose(f);}//Devuelve Memoria Totallong EstadoMemoria::getTotal(){ long aux=-1; //Almacena el retorno de la funcion if(strlen(cadenaEstadoTotal)>0) { //Encuentra en la cadena del archivo el valor buscado a devolver sscanf(cadenaEstadoTotal,"%ld",&aux); } //Retorna valor en KB return aux;}//Devuelve Memoria Usadalong EstadoMemoria::getUsada(){ long aux=-1; //Almacena el retorno de la funcion if(getTotal()>=0 && getLibre()>=0) { aux=getTotal()-getLibre(); } //Retorna valor en KB return aux;}//Devuelve Memoria Librelong EstadoMemoria::getLibre(){ long aux=-1; //Almacena el retorno de la funcion if(strlen(cadenaEstadoLibre)>0) { //Encuentra en la cadena del archivo el valor buscado a devolver en KB sscanf(cadenaEstadoLibre,"%ld",&aux); } //Retorna valor en KB return aux;}//Devuelve Memoria en Bufferlong EstadoMemoria::getBuffer(){ long aux=-1; //Almacena el retorno de la funcion if(strlen(cadenaEstadoBuffer)>0) { //Encuentra en la cadena del archivo el valor buscado a devolver en KB sscanf(cadenaEstadoBuffer,"%ld",&aux); } //Retorna valor en KB return aux;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -