當前位置:首頁 » 編程語言 » c語言進程名
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言進程名

發布時間: 2023-05-30 09:19:09

『壹』 c語言里什麼叫進程

對於代碼來說, 進程就是當前程序運行的載體。 也就是程序本身。
進程結束, 程序也就退出了。

所以 中止進程後, 當前程序所有代碼都不會執行。

『貳』 用C語言,根據進程名判斷該進程是否存在

用popen函數
然後用fgets函耐野數讀數據
檢查輸出結轎畝鎮閉粗果
popen("ps -ef|grep proc_name|grep -v grep" ,"r" );

『叄』 用c語言編寫的進程管理程序

#include<conio.h>
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<string.h>
structPCB_type
{charpid[100];//進程名輸入用字元串健壯性比較好
intpriority;
intcputime;
intstate;
};//缺少「};」
intshumu=0,pid_l;
structPCB_typeneicun[20];
structPCB_typehc[10];
intmax=0;
intnumber=0;
voidcreate();
voidrun();
voidhuanchu();
voidkill();
intmain()
{
intn,a;
n=1;
system("color1d");
while(n==1)
{
system("cls");
printf(" **********************************************");
printf(" *進程演示系統*");
printf(" **********************************************");
printf(" 1.創建新的進程2.查看運行進程");
printf(" 3.換出某個進程4.殺死運行進程");//新增了一個喚醒功能
printf(" 5.退出系統");
printf(" **********************************************");
printf(" 請選擇(1~5):");
scanf("%d",&a);
switch(a)
{case1:
create();
printf(" pressanykeytogoon~");
getch();
break;
case2:
run();
printf(" pressanykeytogoon~");
getch();
break;
case3:
huanchu();
printf(" pressanykeytogoon~");
getch();
break;
case4:
kill();
printf(" pressanykeytogoon~");
getch();
break;
case5:
exit(0);
default:
n=1;
break;
}
}
}
voidcreate()
{
if(shumu>=20)
{
printf(" 內存已滿,請先結束或換出進程 ");
}
else
{
shumu++;
printf(" 請輸入新進程的程序名 ");
scanf("%s",neicun[shumu-1].pid);
printf(" 請輸入新進程的優先順序(數字) ");//
scanf("%d",&neicun[shumu-1].priority);
printf(" 請輸入新進程的需要的運行時間 ");//
scanf("%d",&neicun[shumu-1].cputime);
printf(" 創建進程時令其狀態為就緒 ");
neicun[shumu-1].state=2;//1為等待,2就緒,3為運行

}
printf(" 創建進程成功! ");
}
voidrun()
{
if(shumu<=0)//查看//判斷是否存在進程
{
printf("當前狀態無進程,按任意鍵繼續創建進程 ");
return;
}
intmax=0;
for(inti=0;i<shumu;i++)//
if((neicun[i].state==2&&neicun[i].priority>=neicun[max].priority))
{
max=i;//這里判斷優先順序,優先順序高的進程優先執行。
}
if(neicun[max].state==2)
{
neicun[max].state=3;//進程運行,狀態為3
system("color5F");
printf("/*********************當前已有進程%d個*************************/: ",shumu);
for(inti=0;i<shumu;i++){
printf("進程編號:%d",i+1);
printf(" /***********正在運行進程程序名:%s*************************/ ",neicun[i].pid);
printf(" /***********該進程的優先順序:%d*****************************/ ",neicun[i].priority);
printf(" /***********該進程的需要運行時間:%d***********************/ ",neicun[i].cputime);
printf(" /***********該進程的狀態:%d(1為等待,2就緒,3為運行)******/ ",neicun[i].state);}//這里增加顯示當前運行的進程
}

}
/*換出*/
voidhuanchu()
{
intk;
if(shumu<=0)//判斷是否存在進程
{
printf("當前進程數目為0,不能執行該操作 ");
return;
}
printf("當前已有進程%d個: ",shumu);
for(inth=0;h<shumu;h++)//當前所有的進程
printf("序號:%d 程序名:%s 優先順序:%d 運行時間:%d 狀態:%d "
,h,neicun[h].pid,neicun[h].priority,neicun[h].cputime,neicun[h].state);
printf("請輸入要換出程序的序號:");
scanf("%d",&k);
if(neicun[k].state==3)
{
neicun[k].state=1;
printf("已被換出,進程名為:%s、狀態為:[%d]",neicun[k].pid,neicun[k].state);
}
else
printf("無法換出,進程名為:%s的進程",neicun[k].pid);//換出結果提示
}
voidkill()
{

if(shumu<=0)//對存在的進程進行判斷
{
printf("當前進程數目為0,不能執行該操作 ");
return;
}
intk=0;
printf("/******************當前已有進程%d個******************/: ",shumu);
for(inth=0;h<shumu;h++)//當前所有的進程
printf("序號:%d 程序名:%s 優先順序:%d 運行時間:%d 狀態:%d "
,h,neicun[h].pid,neicun[h].priority,neicun[h].cputime,neicun[h].state);
printf("請輸入要殺死程序的序號:");
scanf("%d",&k);
neicun[k].cputime=0;
neicun[k].priority=0;
neicun[k].state=0;
if(k==(shumu-1))
shumu--;
else{
for(intj=k+1;j<shumu;j++)
{
strcmp(neicun[j-1].pid,neicun[j].pid);
neicun[j-1].priority=neicun[j].priority;
neicun[j-1].cputime=neicun[j].cputime;
neicun[j-1].state=neicun[j].state;
}
shumu--;
}
printf("進程名為:%s已被殺死! ",neicun[k].pid);//顯示進程已被殺死

}

『肆』 如何僅用c語言實現查看系統的進程,和進程名

#include<stdlib.h>塌鎮
#include<stdio.h>

voidmain()手鬧
{

//顯示所有的團薯粗進程
system("tasklist");
system("pause");

}

顯示正在運行的進程