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

📄 interface.c

📁 获取unix系统进程信息的功能
💻 C
字号:
#ifdef __cplusplus
extern "C" {
#endif

#include <stdio.h>

#include "interface.h"
#include "orainfo.h"
#include "common.h"
#include "utils.h"


int pFunGetOraCpuUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraMemUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSysCpuUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSysMemUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSysMemSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSysIP(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraOSVer(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraLsnrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraDbwrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraLgwrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraCkptStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSmonStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraPmonStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraAllBgProcName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraBgProcName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraDirDiskUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraDirDiskSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraDirDiskUsedSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraDirSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraFileSysName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraSysHostName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);
int pFunGetOraHostMac(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf);

Interface g_arrOpt[]={
    {"oracpuload", pFunGetOraCpuUsage},
    {"oramemload", pFunGetOraMemUsage},
    {"syscpuload", pFunGetOraSysCpuUsage},
    {"sysmemload", pFunGetOraSysMemUsage},
    {"sysmemsize", pFunGetOraSysMemSize},
    {"sysip", pFunGetOraSysIP},
    {"osver", pFunGetOraOSVer},
    {"lsnrstat", pFunGetOraLsnrStat},
    {"DBWR", pFunGetOraDbwrStat},
    {"LGWR", pFunGetOraLgwrStat},
    {"CKPT", pFunGetOraCkptStat},
    {"SMON", pFunGetOraSmonStat},
    {"PMON", pFunGetOraPmonStat},
    {"allbgproc", pFunGetOraAllBgProcName},
    {"bgproc", pFunGetOraBgProcName},
    {"diskload", pFunGetOraDirDiskUsage},
    {"disksize", pFunGetOraDirDiskSize},
    {"dirsize", pFunGetOraDirDiskUsedSize},
    {"filesysname", pFunGetOraFileSysName},
    {"hostname", pFunGetOraSysHostName},
    {"hostmac", pFunGetOraHostMac},
	{0,0}
};


int pFunGetOraCpuUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    float percent;
    int ret;
    
    ret = GetOraCpuUsage(pGlbVar->szOraSid, &percent, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%.02f", percent);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraMemUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    float percent;
    int ret;

    ret = GetOraMemUsage(pGlbVar->szOraSid, &percent, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%.02f", percent);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSysCpuUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    float percent;
    int ret;

    ret = GetOraSysCpuUsage(&percent, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%.02f", percent);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSysMemUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    float percent;
    int ret;

    ret = GetOraSysMemUsage(&percent, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%.02f", percent);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSysMemSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    unsigned long memsize;
    int ret;

    ret = GetOraSysMemSize(&memsize, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%lu", memsize);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSysIP(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraSysIP(szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraOSVer(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraOSVer(szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraLsnrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

    ret = GetOraLsnrStat(&status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraDbwrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

#ifdef WIN32
    if (pGlbVar->nWinBgProcStat != -1)
    {
        sprintf(buf, "%d", pGlbVar->nWinBgProcStat);
        return 0;
    }
#endif
    
    ret = GetOraDbwrStat(pGlbVar->szOraSid, &status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

#ifdef WIN32
    pGlbVar->nWinBgProcStat = status;
#endif

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraLgwrStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

#ifdef WIN32
    if (pGlbVar->nWinBgProcStat != -1)
    {
        sprintf(buf, "%d", pGlbVar->nWinBgProcStat);
        return 0;
    }
#endif
    
    ret = GetOraLgwrStat(pGlbVar->szOraSid, &status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

#ifdef WIN32
    pGlbVar->nWinBgProcStat = status;
#endif

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraCkptStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

#ifdef WIN32
    if (pGlbVar->nWinBgProcStat != -1)
    {
        sprintf(buf, "%d", pGlbVar->nWinBgProcStat);
        return 0;
    }
#endif

    ret = GetOraCkptStat(pGlbVar->szOraSid, &status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

#ifdef WIN32
    pGlbVar->nWinBgProcStat = status;
#endif

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSmonStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

#ifdef WIN32
    if (pGlbVar->nWinBgProcStat != -1)
    {
        sprintf(buf, "%d", pGlbVar->nWinBgProcStat);
        return 0;
    }
#endif

    ret = GetOraSmonStat(pGlbVar->szOraSid, &status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

#ifdef WIN32
    pGlbVar->nWinBgProcStat = status;
#endif

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraPmonStat(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    int status;
    int ret;

#ifdef WIN32
    if (pGlbVar->nWinBgProcStat != -1)
    {
        sprintf(buf, "%d", pGlbVar->nWinBgProcStat);
        return 0;
    }
#endif

    ret = GetOraPmonStat(pGlbVar->szOraSid, &status, errbuf);
    if (ret < 0)
    {
        return -1;
    }

#ifdef WIN32
    pGlbVar->nWinBgProcStat = status;
#endif

    sprintf(buf, "%d", status);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraAllBgProcName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    GetOraAllBgProcName(buf, buflen);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraBgProcName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    GetOraBgProcName(pGlbVar->szOraBgProc, buf, buflen);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraDirDiskUsage(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    float percent;
    int ret;

    ret = GetOraDirDiskUsage(pGlbVar->szDir, &percent, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%.02f", percent);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraDirDiskSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraDirDiskSize(pGlbVar->szDir, szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraDirDiskUsedSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraDirDiskUsedSize(pGlbVar->szDir, szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraDirSize(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraDirSize(pGlbVar->szDir, szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraFileSysName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraFileSysName(pGlbVar->szDir, szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraSysHostName(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraSysHostName(szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

int pFunGetOraHostMac(GlbVar *pGlbVar, char *buf, int buflen, char *errbuf)
{
    char szBuf[COM_BUF_LEN];
    int ret;

    ret = GetOraHostMac(szBuf, COM_BUF_LEN, errbuf);
    if (ret < 0)
    {
        return -1;
    }

    sprintf(buf, "%s", szBuf);
    trim_strLR(buf, buf);
    if (strlen(buf) == 0)
    {
        strcpy(errbuf, "2:null data");
        return -1;
    }
    return 0;
}

#ifdef	__cplusplus
}
#endif

⌨️ 快捷键说明

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