请问怎么使用c语言获取电脑cpu利用率(Windows和Linux)

请问怎么使用c语言获取电脑cpu利用率(Windows和Linux)
and cpu利用率是按照字面意思计算的么?
本人真的是菜鸟,求指点,恳求

单个cpu利用率就是cpu执行用户进程的时间/总时间
如果计算机有多个cpu(内核),那么还需要除以cpu个数。

linux下的代码:http://blog.csdn.net/yusiguyuan/article/details/39924687
windows下的代码:http://blog.csdn.net/fyxichen/article/details/50577580

 //CPU利用率  
FILETIME m_preidleTime;  
FILETIME m_prekernelTime;  
FILETIME m_preuserTime;  

__int64 CompareFileTime2(FILETIME time1, FILETIME time2)  
{  
    __int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;  
    __int64 b = time2.dwHighDateTime << 32 | time2.dwLowDateTime;  


    return   b - a;  
}  

void GetCpuUseage()  
{  
    GetSystemTimes(&m_preidleTime, &m_prekernelTime, &m_preuserTime);  
    Sleep(1000);  
}  

double CpuUseage()  
{  
    FILETIME idleTime;  
    FILETIME kernelTime;  
    FILETIME userTime;  
    GetSystemTimes(&idleTime, &kernelTime, &userTime);  


    int idle = CompareFileTime2(m_preidleTime, idleTime);  
    int kernel = CompareFileTime2(m_prekernelTime, kernelTime);  
    int user = CompareFileTime2(m_preuserTime, userTime);  


    if (kernel + user == 0)  
        return 0.0;  
    //(总的时间-空闲时间)/总的时间=占用cpu的时间就是使用率  
    double cpu = abs((kernel + user - idle) * 100 / (kernel + user));  

    m_preidleTime = idleTime;  
    m_prekernelTime = kernelTime;  
    m_preuserTime = userTime;  
    return cpu;  
}