#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<limits.h>
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
FILE* fp=NULL;
int count=0;
int BUFSZ=100;
char buf[BUFSZ];
char command[150];
//system() 也可以检测进程是否存在,但非常耗费资源
sprintf(command, "ps -C %s|wc -l", "test" );
if((fp = popen(command,"r")) == NULL)
{
cout<<"(fp = popen(command,\"r\")) == NULL"<<endl;
}
if( (fgets(buf,BUFSZ,fp))!= NULL )
{
count = atoi(buf);
if((count - 1) == 0)
{
printf("%s not found\n","test");
//可以用system()开启test
}
else
{
printf("process : %s total is %d\n","test",(count - 1));
}
}
pclose(fp);
fp=NULL;
return 0;
}
linux下检测某个进程是否存在
最新推荐文章于 2024-08-07 21:52:22 发布