diff --git a/.gitignore b/.gitignore index f8d8e76..16d5c0d 100644 --- a/.gitignore +++ b/.gitignore @@ -202,3 +202,4 @@ fabric.properties .idea/caches/build_file_checksums.ser vperf +test/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a5fc0c..261a868 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ add_definitions('-Wall') add_executable(${PROJECT_NAME} main.c test.c) +SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build/) #add_custom_target(${PROJECT_NAME}-symlink ALL ln --force -s ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/${PROJECT_NAME} DEPENDS ${PROJECT_NAME}) set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}) diff --git a/build/meminfo b/build/meminfo new file mode 100644 index 0000000..54ce210 --- /dev/null +++ b/build/meminfo @@ -0,0 +1,47 @@ +MemTotal: 4169396 kB +MemFree: 3468580 kB +MemAvailable: 3660912 kB +Buffers: 3268 kB +Cached: 378088 kB +SwapCached: 0 kB +Active: 261560 kB +Inactive: 257688 kB +Active(anon): 133856 kB +Inactive(anon): 8456 kB +Active(file): 127704 kB +Inactive(file): 249232 kB +Unevictable: 0 kB +Mlocked: 0 kB +SwapTotal: 2097148 kB +SwapFree: 2097148 kB +Dirty: 4 kB +Writeback: 0 kB +AnonPages: 136036 kB +Mapped: 143540 kB +Shmem: 8676 kB +KReclaimable: 39372 kB +Slab: 106852 kB +SReclaimable: 39372 kB +SUnreclaim: 67480 kB +KernelStack: 2832 kB +PageTables: 6408 kB +NFS_Unstable: 0 kB +Bounce: 0 kB +WritebackTmp: 0 kB +CommitLimit: 4181844 kB +Committed_AS: 784436 kB +VmallocTotal: 34359738367 kB +VmallocUsed: 0 kB +VmallocChunk: 0 kB +HardwareCorrupted: 0 kB +AnonHugePages: 30720 kB +ShmemHugePages: 0 kB +ShmemPmdMapped: 0 kB +HugePages_Total: 0 +HugePages_Free: 0 +HugePages_Rsvd: 0 +HugePages_Surp: 0 +Hugepagesize: 2048 kB +Hugetlb: 0 kB +DirectMap4k: 138176 kB +DirectMap2M: 4360192 kB diff --git a/include/test.h b/include/test.h index 4972c8f..fe50af1 100644 --- a/include/test.h +++ b/include/test.h @@ -13,5 +13,6 @@ double get_sqrt(double var1); +void updateMem(unsigned int *all, unsigned int *fre, float *useage); #endif /* !TEST_H */ diff --git a/main.c b/main.c index 43b9a79..81f028a 100644 --- a/main.c +++ b/main.c @@ -7,13 +7,30 @@ #include #include"./include/test.h" +#include +#include +#define MAX_LINE 1024 +struct memGlobal { + unsigned int All; + float Useage; + unsigned int Free; +} memG; + +struct cpuGlobal { + float Useage; +} cpuG; + +struct process { + char Name[128]; + unsigned id; + float cpu; + float mem; +} pList[1024]; int main() { - double b=25.0; - double a=0.0; - a=get_sqrt(b); - printf("a is %lf, b is %lf\n",a,b); + updateMem(&memG.All, &memG.Free, &memG.Useage); + printf("mem: all %u free: %u usage: %f\n", memG.All, memG.Free, memG.Useage); return 0; } diff --git a/test.c b/test.c index 66dacdc..43299a9 100644 --- a/test.c +++ b/test.c @@ -6,9 +6,25 @@ */ #include "./include/test.h" - +#include +#define MAX_LINE 1024 double get_sqrt(double var1) { return sqrt(var1); } + +void updateMem(unsigned int *all, unsigned int *fre, float *useage) { + char buf[MAX_LINE]; /*缓冲区*/ + FILE *fp; /*文件指针*/ + if((fp = fopen("./meminfo","r")) == NULL) + { + perror("fail to read"); + return; + } + fgets(buf,MAX_LINE,fp); + sscanf(buf, "%*s %u kB",all); + fgets(buf,MAX_LINE,fp); + sscanf(buf, "%*s %u kB",fre); + *useage = 1 - (float) *fre / *all; +}