对进程个数计数

 

 在linux怎么知道一个指定的“进程名”有几个在运行了呢?

下面这下例子演示了这个过程,计数函数为:getProcessCount()

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 获取进程数量
int getProcessCount(char *processname)
{
FILE *ptr;
char buff[512], ps[128];
int count = -1;
sprintf(ps, "ps -e|grep -c ' %s$'", processname);	// 对指定的进程名计数(求个数)
if((ptr = popen(ps, "r")) != NULL)
{
if(fgets(buff, 512, ptr) != NULL)
{
count = atoi(buff);
}
}
pclose(ptr);
return count;
}
int main(int argc, char *argv[])
{
if(argc == 2)
{
int ret = getProcessCount(argv[1]);			// 获取进程数量
printf("Count[%s] = %d\n", argv[1], ret);
}
else
{
printf("Usage error!\n");
}
return 0;
}

如果要判断某个进程是否存在的话,只要判断这个进程的个数就知道了。小于1就是不存在,否则存在。

 


 参考了网上的代码:http://blog.csdn.net/lanmanck/article/details/6021878

int detect_process(char * process_name)  
{  
FILE *ptr;  
char buff[512];  
char ps[128];  
sprintf(ps,"ps -e | grep -c ' %s</p>",process_name);  
strcpy(buff,"ABNORMAL");  
if((ptr=popen(ps, "r")) != NULL)  
{  
while (fgets(buff, 512, ptr) != NULL)  
{  
if(atoi(buff)>=2)  
{  
pclose(ptr);  
return CONFLICT;  
}  
}  
}  
if(strcmp(buff,"ABNORMAL")==0)  /*ps command error*/  
return ERROR;          
pclose(ptr);  
return NOERROR;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何设计安全的用户登录功能

用户登录功能是Web应用系统具备的最基本的功能&#xff0c;关系到用户数据和应用系统数据的安全&#xff0c;设计一个安全的用户登录功能&#xff0c;涉及到以下几个方面的内容。 (一) 老生常谈——口令 1. 口令长度与复杂度限制 限制用户输入一些非常容易被破解的口令&#xf…

可耗竭且不可回收的资源

第四章可耗竭且不可回收的资源能量是人类最关键的资源&#xff0c;没有它&#xff0c;生命将会终结。第一节天然气&#xff1a;价格控制第二节卡特尔问题• 卡特尔卡特尔是资本主义国家中的垄断组织形式之一&#xff0c;由生产同类产品的企业联合组成。卡特尔成员企业一方面为了…

stylus之其余参数(Rest Params)

其余参数(Rest Params) 其余参数&#xff1a; Stylus支持name…形式的其余参数。这些参数可以消化传递给混写或函数的参数们。这在处理浏览器私有属性&#xff0c;如-moz或-webkit的时候很管用 下面这个例子中&#xff0c;所有的参数们(1px, 2px, …)都被一个args参数给简单…

Taro+react开发(28)本地用require线上不必

img_hongchen: require("../../assets/images/companyTitle/system_video_cover.png"),

FineUI表格模板列Undefined问题

一般是配置文件未添加ClientID"AutoID"引起转载于:https://www.cnblogs.com/fuqiang88/p/3822567.html

fork()使用(一)

第一贴&#xff1a;cu上关于fork()函数的精辟分析 声明&#xff1a;在别人的博客上看到这篇文章&#xff0c;真的很精辟&#xff0c;把问题一下子讲清楚了。所以&#xff0c;特意转贴在此&#xff0c;向各位高人致敬&#xff0c;也向原贴主致谢&#xff01;本人不改变原贴的风貌…

stylus之注释(Comments)

注释(Comments) 注释 Stylus支持三种注释&#xff0c;单行注释&#xff0c;多行注释&#xff0c;以及多行缓冲注释 单行注释&#xff1a; 跟JavaScript一样&#xff0c;双斜杠&#xff0c;CSS中不输出 多行注释&#xff1a; 多行注释看起来有点像CSS的常规注释。然而&a…

吃的文化

主料&#xff1b;发好活海参1条&#xff0c;120克&#xff0c;辅料龙口粉丝10克&#xff0c;蟹黄2克 &#xff0c;五花肉丁10克 西兰花1朵土鸡蛋1个浓汤200克 &#xff0c;海参过水&#xff0c;五花肉煸锅加蚝油2克&#xff0c;金标老抽1克&#xff0c;加浓汤200克 盐味精各一克…

进程初学(二)

首先&#xff0c;来看一下下面的源程序吧&#xff1a; #include <stdio.h>#include <unistd.h>int main(){pid_t pid;printf("Now only one process\n");printf("Calling fork...\n");pid fork();if(!pid){ // 这里是子进程执行的任务printf…

stylus之条件(Conditionals)

条件(Conditionals) 条件&#xff1a; 条件提供了语言的流控制&#xff0c;否则就是纯粹的静态语言。提供的条件有导入、混入、函数以及更多。下面的例子纯粹示例&#xff0c;并不是使用建议 if / else if / else 这没什么好说的&#xff0c;跟一般的语言一致&#xff0c;i…

Taro+react开发(30)引入静态资源地址

<Image mode"widthFix" src{require("./bussness/sysw.jpg")} />

发短信接口获取验证码

接口合作公司 &#xff1a;http://sms.inolink.com/LoginFront.aspx 从这里获取id <?php function execPostRequest($url,$fields){if(empty($url)){ return false;}//$fields_string http_build_query($post_array);foreach($fields as $key>$value) { $fields_strin…

有感于《你赔了我赚了》

昨晚&#xff0c;看了一部电影名叫《你赔了我赚了》。我心情久久不能平静下来&#xff0c;当晚碾转反侧不断地思考着、、、、、这部电影以其极为夸张的手法和特写镜头&#xff0c;聚焦在社会上虚假广告的拍摄&#xff0c;深刻地揭示了当今社会存在的丑陋现象。也正因为这个关系…

Express中use挂载中间件的方法

1.app.use([path,], function [, function…]) 挂载中间件方法到路径上。如果路径未指定&#xff0c;那么默认为”/” 2.一个路由将匹配任何路径如果这个路径以这个路由设置路径后紧跟着”/”。比如&#xff1a;app.use(‘/apple’, …)将匹配”/apple”&#xff0c;”/apple/…

对Ubuntu20.04.2 mate 桌面 Brisk menu 组件的配置

Brisk Menu 让菜单在 mate 桌面上灵活布局&#xff0c; 那个会跳动的精灵还是挺不错的&#xff0c;适当处理后就得到了下面干净利索的桌面。 Ubuntu 安装时&#xff0c;在控制中心留有 plank reference 设置功能&#xff0c;让屏幕中底部的这些组件在不同位置摆放。当进行配置时…

【WCF--初入江湖】11 安全

11 安全 前言 【1】传输安全传输安全模式传输安全与绑定协议【2】身份验证身份验证分类证书示例&#xff1a;传输安全匿名客户端证书的使用1. 传输安全 保证信息在传输过程中的安全.传输安全是身份验证和授权的前提。传输安全模式&#xff1a; None&#xff1a;关闭了传输安全的…

第三代智能建站系统

智能建站又称第三代网站建设系统&#xff0c;模板建站&#xff0c;自助建站。南京空间智能建站网采用当前最先进的智能建站专利技术&#xff0c;功能强大&#xff0c;操作简单&#xff0c;实现了真正的会打字就会建网站的梦想。南京空间智能建站网采用的技术基于Internet的Web技…

linux 下清空回收站命令

我的系统是Fedora12&#xff0c;要想清空回收站的内容&#xff0c;首先就要知道回收站的位置。 我是以root登录系统的&#xff0c;回收站的默认位置是$HOME/.local/share/Trash/files 所以&#xff0c;清空回收站的命令就出来了&#xff1a; [root~ #7]#ls /root/.local/sha…