C语言有什么函数可以判断某进程是否存在
答案:6 悬赏:70 手机版
解决时间 2021-12-01 07:14
- 提问者网友:几叶到寒
- 2021-12-01 00:40
C语言有什么函数可以判断某进程是否存在
最佳答案
- 五星知识达人网友:十年萤火照君眠
- 2021-12-01 02:02
用popen函数
然后用fgets函数读数据
检查输出结果
popen("ps -ef|grep proc_name|grep -v grep" ,"r" );
然后用fgets函数读数据
检查输出结果
popen("ps -ef|grep proc_name|grep -v grep" ,"r" );
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-12-01 05:20
grep proc_name|grep -v grep
- 2楼网友:野慌
- 2021-12-01 04:38
没说明系统是LINUX还是WINDOWS或者MAC,这个必须用到系统提供的API函数,每个系统提供的是不一样的,建议查API手册
- 3楼网友:鱼忧
- 2021-12-01 04:10
CWnd::FindWindow(NULL, _T("这台电脑"));该函数返回窗口句柄,若返回值为null则进程不存在
- 4楼网友:煞尾
- 2021-12-01 03:18
OpenProcess();
函数原型:
HANDLE OpenProcess(
DWORD dwDesiredAccess, //渴望得到的访问权限(标志)
BOOL bInheritHandle, // 是否继承句柄
DWORD dwProcessId// 进程标示符
);
第三参数为进程ID,输入参数,
如进程存在,返回值为指定进程的句柄。
如进程不存在,返回值为空
函数原型:
HANDLE OpenProcess(
DWORD dwDesiredAccess, //渴望得到的访问权限(标志)
BOOL bInheritHandle, // 是否继承句柄
DWORD dwProcessId// 进程标示符
);
第三参数为进程ID,输入参数,
如进程存在,返回值为指定进程的句柄。
如进程不存在,返回值为空
- 5楼网友:刀戟声无边
- 2021-12-01 02:58
C语言没有库函数可以做到这一点。但是在Linux下,有一些替代方案。
见下:
基本思路是先定义一个FILE指针,用该指针接收popen()执行ps指令的返回值,再从指针中读取数据到缓存,根据得到的数据判断进程是否存在,怎么操作要看ps的参数了。
#include#include
#include
#include
#include
#include
#include
#define BUFSZ PIPE_BUF
void err_quit(char *msg)
{
perror(msg);
exit(EXIT_FAILURE);
}
int main(int argc, char *argv[])
{
FILE* fp;
int count;
char buf[BUFSZ];
char command[150];
if(argc != 2)
{
printf("USAGE: example
exit(EXIT_SUCCESS);
}
else
sprintf(command, "ps -C %s|wc -l", argv[1] );
if((fp = popen(command,"r")) == NULL)
err_quit("popen");
if( (fgets(buf,BUFSZ,fp))!= NULL )
{
count = atoi(buf);
if((count - 1) == 0)
printf("%s not found ",argv[1]);
else
printf("process : %s total is %d ",argv[1],(count - 1));
}
pclose(fp);
exit(EXIT_SUCCESS);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯