用C寫程序管理程式,要含有程序的建立,程序執行,喚出某個

2021-03-03 20:32:59 字數 5209 閱讀 1962

1樓:匿名使用者

給思路來

,**自己寫,不想源寫的話,網上開源的程序管理器很多了1. 程序的建立 = createprocess 呼叫該函式就可以了2、程序的執行,沒聽過應該是執行乙個exe檔案把,可以使用方法1或者使用shellexcutexx函式

3.喚出某個程序,說真的第一次聽說

4.結束某個指定的程序,只要呼叫openprocess傳入程序的id,然後呼叫terminateprocess結束就可以了(當然結束的方法很多比如記憶體清零,掛起結束等)

5.程序間的同學,用管道,共享記憶體,或者直接sendmessage(這個不好用)

用c語言編寫的程序管理程式?

2樓:匿名使用者

#include

#include

#include

#include

#include

struct pcb_type

{ char pid[100]; //程序

用c++建立程序

3樓:琦豬闖紅燈

#include

#include

#include

dword winapi fun1proc(lpvoid ipparameter);

dword winapi fun2proc(lpvoid ipparameter);

void main()

dword winapi fun1proc(lpvoid ipparameter)

dword winapi fun2proc(lpvoid ipparameter)

4樓:電視與沙發

你這個是執行緒不是程序!

求**~作業系統 程序管理實驗 語言c++ 要求如下:

5樓:匿名使用者

四、實驗思路和設計

1、程序管理

(1)程式流程圖

由學生自行完成。

(2)主要程式**

//pcb結構體

struct pcb *hready=null,*hblock=null,*p; //hready,hblock分別為指向就緒和阻塞佇列

typedef struct pcb pcb;

int m,n,r,a,b,c,h=0,i=1,time1inteval; //m為要模擬的程序個數,n為初始化程序個數

//r為可隨機產生的程序數(r=m-n)

//a,b,c分別為a,b,c三類資源的總量

//i為進城計數,i=1...n

//h為執行的時間片次數,time1inteval為時間片大小(毫秒)

//建立乙個pcb結構體型的空鍊錶

pcb *increat(void)

//從鍊錶起始位址開始輸出該鍊錶的內容

void disp(pcb *head)

while(p1!=null); //不斷輸出程序的資訊,直到鏈尾!

} //if

else

form1->memo1->lines->add(str2);

}//將程序插入到鏈尾(包括就緒佇列和阻塞佇列)

pcb *insert(pcb *head,pcb*pcb) //帶兩個指標形參:佇列指標和當前程序pcb

else

p1->next=pi;

pi->next=null;

}return(head);

}//對程序進行初始化,建立就緒隊阻塞佇列。

void input()

//if

else //如果資源不符合所需要求,則寫入阻塞佇列隊尾

//if

str1+=" 當前程序狀態:";

str1+=(p->state);

str1+="\r\n";

str1+="\r\n";

}//for

form1->memo1->lines->add(str1);

}//輸出就緒佇列和阻塞佇列的資訊

void outputall()

//執行就緒佇列的頭程序,執行乙個時間片(fcfs),輪轉乙個時間片

pcb *running(pcb *head)

p1->state='r'; //程序狀態由就緒轉向執行

(p1->rtime)++; //已執行時間片數增加1

h++;

str4+="~~~~~~~~~~~~~~~~ 當前正在執行的程序id是: ";

str4+=inttostr(p1->id);

str4+=" ~~~~~~~~~~~~~~~~~~\r\n";

str4+="程序id 程序狀態 a資源數 b資源數 c資源數 需要時間片 已執行時間片\r\n";

str4+=" ";

str4+=inttostr(p1->id);str4+=" ";

str4+=(p1->state);str4+=" ";

str4+=inttostr(p1->ra);str4+=" ";

str4+=inttostr(p1->rb);str4+=" ";

str4+=inttostr(p1->rc);str4+=" ";

str4+=inttostr(p1->ntime);str4+=" ";

str4+=inttostr(p1->rtime);str4+=" ";

form1->memo1->lines->add(str4);

if(p1->ntime==p1->rtime) //如果已經執行的時間片到達所需次數,該程序結束

else //如果已經執行的時間片未到達所需次數,該程序執行乙個時間片後進入就緒佇列尾

return(head);

}//檢測當前資源數目是否滿足阻塞佇列裡程序的需求

void testblock()

//if(p1==hblock)

else

//else

} //大if

else

//else

form1->memo1->lines->add(str5);

} //whlie

}//檢測是否有新的程序產生,隨機產生新程序

void testnew()

//if

else //程序不滿足要求,進入阻塞佇列

//else

}//if (t<=7)

form1->memo1->lines->add(str6);

}//if(r>0)

r--;

}//系統三類資源變化情況的顯示

void rescore()

if(a<0)

if(a>=0&&aedit7->text=inttostr(a);}

if(b>b1)

if(b<0)

if(b>=0&&b<=b1)

if(c>c1)

if(c<0)

if(c>=0&&c<=c1)

}void __fastcall tform1::timer1timer(tobject *sender)

//先來先服務(fcfs)排程演算法

void runfcfs()

else

}//將結果儲存成txt檔案

void __fastcall tform1::n8click(tobject *sender)

for(int i=0;imemo1->lines->count;i++)

fclose(fp);}}

//開始模擬按鈕單擊執行函式

void __fastcall tform1::button1click(tobject *sender)

//清除螢幕按鈕單擊執行函式

void __fastcall tform1::button2click(tobject *sender)

//執行的主函式

void runmain()

6樓:匿名使用者

li hua often plays football

使用c語言程式設計實現:父程序建立二個子程序,三個程序各自列印出其程序 10

7樓:匿名使用者

這個在linux和在windows下的實現方法是完全不一樣的。因為兩個系統建立程序的函式不同。其中windows環境下的實現非常複雜。

給你兩個例子供你參考吧。

linux環境下的實現:

#include

int main(int argc, char *argv)/**/*fork()返回值為0,則建立子程序成功且當前程序為子程序*/if ( ( pid1=fork() ) == 0 )/**/*建立子程序2

***/

if ( ( pid2=fork() ) < 0 ) /*fork()返回值為負數,則建立程序失敗*/

/**/*fork()返回值為0,則建立子程序成功且當前程序為子程序*/if ( ( pid2=fork() ) == 0 )/*fork()返回值大於0,則當前程序為父程序*/else

return 0;

} windows環境下的實現沒有寫。大概需要使用包含在windows.h中的標頭檔案中的createprocess()函式實現建立程序。

8樓:匿名使用者

#include

#include

#include

int main()

}return 0;}

windows下用c++建立程序,再建立兩個執行緒

9樓:匿名使用者

我寫的**,沒編譯,你試試行不行

dword winapi sumthread(lpvoid lp)//求和執行緒

return 0;//執行緒返回

}dword winapi multhread(lpvoid lp)//求階乘執行緒

return 0;

}dword winapi printthread(lpvoid lp)//列印執行緒

void main()

怎樣用c建立簡單程序怎樣用c建立乙個簡單程序

include int main 用createprocess 用法見msdn 以下迴圈開啟記事本 startupinfo startupinfo startupinfo.cb sizeof startupinfo process information process info for int i...

如何刪除金山程序管理器,怎麼關閉金山程序管理器

不要用二樓的辦法,可能把你的系統弄垮。一個軟體,特別是安全類軟體,各個程序間是相互配合一起發揮作用的,也就是一個整體。其實它那個程序管理器也不妨礙什麼呀,幹嘛想著要停止它呢? 絕戀三塊石 在金山毒霸的設定裡面,有關於 金山毒霸程序管理器 這個選項,你給去掉就行了。具體在哪個欄目裡我記不住了,你找找,...

父程序用fork建立子程序之後,父子程序之間有什麼關係

fork操作之後,父程序和子程序到底發生了什麼?子程序從拷貝了哪些資訊?從 開始執行?這些答案在 unix系統程式設計 第24章程序的建立 有很好的回答。fork之後父子程序同時從fork點開始執行 父子程序共享 段,資料段都是完全拷貝,相互之間的更改不會影響。但是值得注意的是socket是共享的 ...