Linux下C語言實現檢視程序是否存在

2021-06-04 01:28:55 字數 1334 閱讀 5549

基本思路是先定義乙個file指標,用該指標接收popen()執行ps指令的返回值,再從指標中讀取資料到快取,根據得到的資料判斷程序是否存在,怎麼操作要看ps的引數了。

示例一

下面這個示例從網上找的,根據個數來判斷程序是否存在

#include

#include

#include

#include

#include

#include

#include

#define bufsz pipe_buf 

void err_quit(char *msg) 

int main(int argc, char *argv) 

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 ) 

pclose(fp); 

exit(exit_success); 

}示例二

這個麻煩一點,從ps的返回結果獲取pid,再用kill檢視是否存在

#include

#include

#include

#include

int main()

memset(buff,0,sizeof(buff));

fgets(buff,512,pstr);

printf("%s\n",buff);

p=strtok(buff, " ");

p=strtok(null, " "); 

pclose(pstr); //這句是否去掉,取決於當前系統中ps後,程序id號是否是第乙個字段

if(p==null)

//printf( "pid:%s\n",p);

if(strlen(p)==0)

if((pidnum=atoi(p))==0)

printf("pidnum: %d\n",pidnum);

pid=(pid_t)pidnum;

ret=kill(pid,0);

printf("ret= %d \n",ret);

if(0==ret)

printf("process: %s exist!\n",name);

else 

printf("process: %s not exist!\n",name);

return 0;

}

Linux下C語言實現檢視程序是否存在

基本思路是先定義乙個file指標,用該指標接收popen 執行ps指令的返回值,再從指標中讀取資料到快取,根據得到的資料判斷程序是否存在,怎麼操作要看ps的引數了。示例一 下面這個示例從網上找的,根據個數來判斷程序是否存在 include include include include includ...

linux下C語言實現守護程序

table of contents 守護程序的實現 守護程序初始化函式 寫乙個測試 編譯後生成可執行檔案 include include include include include include void init deamon else if pid 0 是第一子程序,後台繼續執行 第一自己...

C語言實現查詢whois

define crt secure no warnings include include include include int main else pclose fp sleep 1000 return 0 儲存還未占用的網域名稱 亂碼是由於cmd預設是gbk編碼方式。修改方法 在中文windo...