- 论坛徽章:
- 0
|
根据进程名,怎么调用系统函数来获取该进程的内存量?
这是一种实现的方法,也就是将/proc下的所有文件遍历一变,判断当中的哪个进程名与已知的进程名相同,然后可以取得对应的id,具体请参考一下代码
dir = opendir("/proc" ;
while(1) {
dir_content = readdir(dir);
if(dir_content == NULL)
break;
#ifndef SUN
if( dir_content->;d_namlen != PROC_PID_LEN )
continue;
sprintf(procfilename,"/proc/%s",dir_content->;d_name);
#else
sprintf(procfilename,"/proc/%s/psinfo",dir_content->;d_name);
#endif
fp = open(procfilename,O_RDONLY);
if ( fp != -1) {
sts = ioctl(fp,PIOCPSINFO,&psinfo);
if(sts != -1) {
sts = strcmp(procName,psinfo.pr_fname);
if( (sts == 0) && (psinfo.pr_pid != self_pid) ) {
found = 1;
break;
}
}
else return(1);
}
else
return(1);
} |
|