⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory_dynix.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
字号:
#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include <net-snmp/agent/hardware/memory.h>#include <unistd.h>#  ifdef HAVE_SYS_SWAP_H#    include <sys/swap.h>#  endif#  ifdef HAVE_SYS_PARAM_H#    include <sys/param.h>#  endif/* * Retained from UCD implementation */longgetTotalSwap(void){    long            total_swp_sectors = -1;    size_t          max_elements = MAXSWAPDEVS;    swapsize_t      swap_dblks[MAXSWAPDEVS];    swapstat_t      swap_status;    int             swap_sizes;    if ((swap_sizes =         getswapstat(max_elements, swap_dblks, &swap_status) >= 0))        total_swp_sectors =            swap_dblks[0].sws_size * swap_dblks[0].sws_total;    return (total_swp_sectors);}longgetFreeSwap(void){    long            free_swp_sectors = -1;    size_t          max_elements = MAXSWAPDEVS;    swapsize_t      swap_dblks[MAXSWAPDEVS];    swapstat_t      swap_status;    int             i, swap_sizes;    if ((swap_sizes =         getswapstat(max_elements, swap_dblks, &swap_status) >= 0)) {        for (i = 0; i < swap_sizes; i++)            free_swp_sectors +=                swap_dblks[0].sws_size * swap_dblks[i].sws_avail;    }    return (free_swp_sectors);}/* * return is in kilobytes  */longgetTotalFree(void){    long            free_swap = S2KB(getFreeSwap());    long            free_mem = P2KB(sysconf(_SC_FREEMEM));    if (free_swap < 0)        return (free_swap);    if (free_mem < 0)        return (free_mem);    free_mem += free_swap;    return (free_mem);}    /*     * Load the latest memory usage statistics     */int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {    netsnmp_memory_info *mem;    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_PHYSMEM, 1 );    if (!mem) {        snmp_log_perror("No Memory info entry");    } else {        if (!mem->descr)            mem->descr = strdup( "Physical memory" );        mem->units = P2KB(1)*1024;        mem->size  = sysconf(_SC_PHYSMEM);        mem->free  = sysconf(_SC_FREEMEM);    }    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SWAP, 1 );    if (!mem) {        snmp_log_perror("No Swap info entry");    } else {        if (!mem->descr)            mem->descr = strdup( "Swap space" );        mem->units = S2KB(1)*1024;        mem->size = getTotalSwap();        mem->free = getFreeSwap();    }/*    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_MISC, 1 );    if (!mem) {        snmp_log_perror("No Buffer, etc info entry");    } else {        mem->units = 1024;        mem->size = -1;        mem->free = getTotalFree();        mem->other = -1;    }*/    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -