⑴ 大神,C語言判斷進程是否存在用哪個函數
這是系統API的問題
不是c語言
在Win32系統下
查看運行的進程
用 Process32First, Process32Next 遍歷進程就好了
⑵ C語言有什麼函數可以判斷某進程是否存在
C語言沒有庫函數可以做到這一點。但是在linux下,有一些替代方案。
見下:
基本思路是先定義一個FILE指針,用該指針接收popen()執行ps指令的返回值,再從指針中讀取數據到緩存,根據得到的數據判斷進程是否存在,怎麼操作要看ps的參數了。
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<limits.h>
#defineBUFSZPIPE_BUF
voiderr_quit(char*msg)
{
perror(msg);
exit(EXIT_FAILURE);
}
intmain(intargc,char*argv[])
{
FILE*fp;
intcount;
charbuf[BUFSZ];
charcommand[150];
if(argc!=2)
{
printf("USAGE:example<processname> ");
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("%snotfound ",argv[1]);
else
printf("process:%stotalis%d ",argv[1],(count-1));
}
pclose(fp);
exit(EXIT_SUCCESS);
}
⑶ linux代碼中如何判斷指定進程是否存在
要對系統中進程進行監測控制,用 ps 命令滿足你。
/bin/ps
ps 是顯示瞬間行程的狀態,並不版動態連續;如果想權對進程運行時間監控,應該用 top 工具。
ps aux | grep (指定進程或服務)
ps aux | grep 456789
ps axu | grep mysql
⑷ 用C寫一個 每隔1分鍾判斷一下XX進程是否存在 linux上的。 麻煩那位高手能貼出完整代碼。
#include#includeintmain(){intpid;pid=fork();if(pid0){wait(NULL);}else{execlp("/bin/ls","/bin/ls","-l",NULL);}return0;}
⑸ linux 編寫程序查看某個進程是否存在,不能用shell腳本
可以用管道啊什麼的,如果a.out是你寫的,在a.out里新建個管道,當它啟動時,發個消息專,讓屬b.out接收這個管道的消息,接收到了就說明a啟動了。如果a.out不是你寫的,那我就不會了,哈,希望幫到你。剛接觸LINUX
⑹ linux c 判斷某進程是否運行
方法1:可以用採取系統調用system("ps -aux>1.txt")將當前進程重定向的1.txt中;
再通過對1.txt進行解析,分析出回你要求的進程名或答ID是否存在;
方法2:研究ps源碼,將其集成到你的程序中去。
⑺ linux查看指定進程是否存在的腳本
你好!
linux查看進程命令是:ps;
詳細的用法,可以在命令行輸入 man ps,進行了解!
比如你要查看為200的進程如下:
ps -ef |grep 200
⑻ 用C語言,根據進程名判斷該進程是否存在
用popen函數
然後用fgets函數讀數據
檢查輸出結果
popen("ps -ef|grep proc_name|grep -v grep" ,"r" );
⑼ linux shell 判斷進程是否存在
|如果你是通過一個進程的名字作為關鍵詞來查找進程是否存在的話,可使用回
ps -ef | grep "<關鍵詞>" | wc -l
輸出為0表示不答存在,輸出大於0,表示存在,且數字就是這個關鍵詞進程的個數;
如果你是通過進程號PID來查找進程是否存在,可以使用
ps --no-heading <PID> | wc -l
同樣,
輸出為0表示不存在,輸出=1,表示存在,因為進程號不可能重復,所以輸出肯定非0即1