当前位置: 技术问答>linux和unix
如何用编程的方法知道一个应用程序是否在运行
来源: 互联网 发布时间:2015-10-27
本文导语: 各位老大,在linux下,如何用编程的方法知道一个应用程序是否在运行,该应用程序名字确定,有没有API函数,或者相应的源码,谢了! | 第一种方法:搜索/proc下的以数字打头的每个文件夹...
各位老大,在linux下,如何用编程的方法知道一个应用程序是否在运行,该应用程序名字确定,有没有API函数,或者相应的源码,谢了!
|
第一种方法:搜索/proc下的以数字打头的每个文件夹中的某个文件(具体是哪个我记不得了)
第二种方法:用ps查看并重定向到一个文件中,再在文件中查找
以上两种方法都有一个缺点:就是如果有相同名称的程序你就不晓得到底是哪个了
第三种方法:在你想知道的那个程序里面加入代码:就是将自己的程序名和进程号写入一个文件中,再实现你自己的一个程序,打开原来那个文件
第二种方法:用ps查看并重定向到一个文件中,再在文件中查找
以上两种方法都有一个缺点:就是如果有相同名称的程序你就不晓得到底是哪个了
第三种方法:在你想知道的那个程序里面加入代码:就是将自己的程序名和进程号写入一个文件中,再实现你自己的一个程序,打开原来那个文件
|
以前写了一个,可以参考一下。
/*
* 实现ps -A |grep "processname"功能
* writed by yuanyuan 2005.9.3
*/
#include
#include
main()
{
int i;
char name[1000][100];
char *delim=" ";
char *p;
int pid;
char *process;
char *test="xinetd";
system("ps -A >Outps");
FILE *log=fopen("Outps","r");
for (i = 0; i
/*
* 实现ps -A |grep "processname"功能
* writed by yuanyuan 2005.9.3
*/
#include
#include
main()
{
int i;
char name[1000][100];
char *delim=" ";
char *p;
int pid;
char *process;
char *test="xinetd";
system("ps -A >Outps");
FILE *log=fopen("Outps","r");
for (i = 0; i