HPUX系统列举进程信息
来源:互联网 发布:局域网桌面直播软件 编辑:程序博客网 时间:2024/06/06 02:22
初衷:写了一个库,提供给其他人调用,在出错的时候写日记想把进程信息(主要是进程名,运行参数等)记录下来,忘了怎么做了(除了传入argv[0]和通过pipe调ps之外)。bs下自己,居然连pstat系列函数都忘了,还到CU去发帖问。
在HPUX上可以用pstat系列函数,可以查到大量的系统信息。在linux上可以查/proc下的文件。
这是HPUX上查进程名代码
void getprocinfo()
{
int r;
struct pst_status buf;
r = pstat_getproc(&buf,sizeof(buf),0,getpid());//指定getpid和elemcount=0查当前进程
if(r<0)
{
printf("get proc error %d/n",errno);
return ;
}
printf("/n/n------------------------------------------------------------------------------");
printf("/n %5s | %5s |%7s| %5s | %s", "PID", "UID", "Threads", "RSS", "Command");
printf("/n------------------------------------------------------------------------------");
printf("/n %5ld | ", buf.pst_pid);
printf("%5ld | ", buf.pst_uid);
printf("%5ld | ", buf.pst_nlwps);
printf("%5ld | ", buf.pst_rssize);
printf("%s/n ", buf.pst_cmd);
}
其中pst_status结构定义在/usr/include/sys/pm_pstat_body.h,有巨多的信息
列出所有进程:
void listproc()
{
struct pst_status * psa = NULL;
struct pst_status * prc = NULL;
struct pst_dynamic psd;
long nproc = 0;
long thsum = 0;
long i;
if ( pstat_getdynamic(&psd, sizeof(psd), 1, 0) == -1 )
(void)perror("pstat_getdynamic failed");
// Get the number of active processes from pst_dynamic
nproc = psd.psd_activeprocs;
psa = (struct pst_status *)malloc(nproc * sizeof(struct pst_status));
// Read the info about the active processes into the array 'psa'
if ( pstat_getproc(psa, sizeof(struct pst_status), nproc, 0) == -1 )
(void)perror("pstat_getproc failed");
(void)printf("/n/n------------------------------------------------------------------------------");
(void)printf("/n %5s | %5s | %10s |%7s| %5s | %5s| %5s|%s", "PID", "UID","UNAME", "Threads", "RSS", "Command");
(void)printf("/n------------------------------------------------------------------------------");
// Report the process info as required
prc = (struct pst_status *)psa;
int uid =getuid();
for (i=0; i < nproc; i++)
{
printf("/n %5ld | ", prc->pst_pid);
printf("%5ld | ", prc->pst_uid);
printf(" %10s |",getpwuid(prc->pst_uid)->pw_name);
printf("%5ld | ", prc->pst_nlwps);
printf("%5ld | ", prc->pst_rssize);
printf("%s ", prc->pst_cmd);
thsum += prc->pst_nlwps;
++prc;
}
(void)printf("/n/n*** %ld processes, %ld threads running/n/n", nproc, thsum);
(void)free(psa);
}
- HPUX系统列举进程信息
- HPUX系统信息查看
- HPUX平台常用命令列举
- 列举当前系统运行进程
- HPUX,AIX系统查看内存配置信息
- 利用NATIVE API列举系统进程
- 列举系统进程及调用模块
- Symbian:列举系统当前所有进程 .
- LINUX,HPUX,AIX系统查询主机配置信息
- 列举进程
- 列举进程
- 列举进程
- 模拟windows任务管理器列举系统进程,并关闭进程......
- HPUX 收集信息
- EnumProcess(Source Code), 列举当前系统下所有进程
- HPUX LVM的结构信息
- HPUX LVM的结构信息
- HPUX LVM的结构信息
- Wordpress RSS FEED开头空行导致错误的解决方案
- 萝莉部落|xLoli.Net
- 腾讯QQ微博API
- 本田飞度汽车的配置和相关资料说明
- 正则表达式技巧:尽量描述清楚规则,少用.*?
- HPUX系统列举进程信息
- WordPress 3.0 RC版发布
- 又是一些Wordpress插件推荐
- Spring-MVC 初体验(一)
- IT技术未来方向
- python -mtimeit in windows
- 几句代码让你放弃All in one SEO !
- C# SendKeys.Send
- C# 训练场(四)创建系统热键,并向活动窗口输入信息