当前位置: 技术问答>linux和unix
一个SCO UNIX的问题,各位老大救命啊。
来源: 互联网 发布时间:2014-10-29
本文导语: 知道一个进程号,判断这个进程是否存在?或读取这个进程的状态。 | 在提问以前详细的看看proc文件系统吧,很多东西都可以从里头得到的。 struct PROCESS_STATUS { pid_t pid; char process_name[1024...
知道一个进程号,判断这个进程是否存在?或读取这个进程的状态。
|
在提问以前详细的看看proc文件系统吧,很多东西都可以从里头得到的。
struct PROCESS_STATUS {
pid_t pid;
char process_name[1024];
char process_status; /* S - sleep,R - run …… */
pid_t ppid;
}
/* 读取进程状态,成功返回1,同时返回状态,否则为0(只保证在linux下运行无误)*/
int GetProcessStatus(pid_t pid, struct PROCESS_STATUS *pProcessStatus)
{
FILE *pid_file;
char check_name[1024];
bzero(check_name, 1024);
sprintf(check_name, "/proc/%d/stat", pid);
if((pid_file=fopen(check_name,"r"))==NULL)
{
return 0;
}
else
{
fscanf(pid_file, "%i", &(pProcessStatus->pid));
fscanf(pid_file, "%s", pProcessStatus->process_name);
fscanf(pid_file, "%c", &(pProcessStatus->process_status));
fscanf(pid_file, "%i", &(pProcessStatus->ppid));
fclose(pid_file);
return 1;
}
}
struct PROCESS_STATUS {
pid_t pid;
char process_name[1024];
char process_status; /* S - sleep,R - run …… */
pid_t ppid;
}
/* 读取进程状态,成功返回1,同时返回状态,否则为0(只保证在linux下运行无误)*/
int GetProcessStatus(pid_t pid, struct PROCESS_STATUS *pProcessStatus)
{
FILE *pid_file;
char check_name[1024];
bzero(check_name, 1024);
sprintf(check_name, "/proc/%d/stat", pid);
if((pid_file=fopen(check_name,"r"))==NULL)
{
return 0;
}
else
{
fscanf(pid_file, "%i", &(pProcessStatus->pid));
fscanf(pid_file, "%s", pProcessStatus->process_name);
fscanf(pid_file, "%c", &(pProcessStatus->process_status));
fscanf(pid_file, "%i", &(pProcessStatus->ppid));
fclose(pid_file);
return 1;
}
}
|
你要读什么状态
|
up
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。