量化RAM,在Linux下使用C进程的CPU

shy*_*cha 4 c linux operating-system process

如何找出Linux中有多少RAM和CPU"吃掉"某些进程?以及如何找出所有已运行的进程(包括守护进程和系统进程)?=)

UPD:使用C语言

Fré*_*idi 5

使用topps.

例如,ps aux将列出所有进程及其所有者,状态,使用的内存等.

编辑:要在Linux下使用C执行此操作,您需要读取proc文件系统中的进程文件.例如,/proc/1/status包含有关init进程(始终具有PID 1)的信息:

char buf[512];
unsigned long vmsize;
const char *token = "VmSize:";
FILE *status = fopen("/proc/1/status", "r");
if (status != NULL) {
    while (fgets(buf, sizeof(buf), status)) {
        if (strncmp(buf, token, strlen(token)) == 0) {
            sscanf(buf, "%*s %lu", &vmsize);
            printf("The INIT process' VM size is %lu kilobytes.\n", vmsize);
            break;
        }
    }
    fclose(status);
}
Run Code Online (Sandbox Code Playgroud)