標頭檔案:
建立函式:
createprocess函式
bool createprocess(//返回值是bool型,可以通過這個判斷是否建立成功
這裡說明下:
在第乙個引數和第二個引數裡都可以放你的.exe檔案的名字,具體做法有以下幾種:
檔案名字是字串 可以是可執行模組的絕對路徑,也可以是相對路徑,在後一種情況下,函式使用當前驅動器和目錄建立可執行模組的路徑。
2.第乙個位置寫為null,.exe檔案名字(注意是字串,可以先存字元陣列裡面)直接放在第二個位置,那麼這個字串中的第乙個被空格分隔的要素指定可執行模組名。如果檔名不包含副檔名,那麼.exe將被假定為預設的副檔名。若檔名中不包含路徑,windows將按照如下順序尋找這個可執行檔案:
1).當前應用程式的目錄。
2).父程序的目錄。
3).windows 系統目錄
4).列在path環境變數中的目錄
以下這些引數不用深究,,如果你只是做作業系統作業的話。。哈哈哈。。。
lpsecurity_attributes// 是否繼承程序控制代碼
lpsecurity_attributes//是否繼承執行緒控制代碼
bool binherithandles//是否繼承控制代碼
dword dwcreationflags//有沒有建立標誌
lpvoid lpenvironment// 是否使用父程序環境變數
lpctstr lpcurrentdirectory//使用父程序目錄作為當前目錄,可以自己設定目錄
lpstartupinfo lpstartupinfo//startupinfow結構體詳細資訊(啟動狀態相關資訊)
lpprocess_information//process_information結構體程序資訊
當然在建立之前要進行準備工作:
譬如對建立的程序的初始資訊結構體的大小的初始化,
程序控制代碼的設定。
#include
#include
intmain()
;//記錄結構體有多大,必須要引數
process_information pi;
//程序id,程序控制代碼,執行緒id,執行緒控制代碼存在於這個結構體
char lppath=
"test.exe"
;//這是用於新程序執行的檔案(當前目錄下的嗷用的是想對路徑)
createprocess
(null
,lppath,
null
,null
,false,0,
null
,null
,&si,
&pi)
;printf
("子程序id:%d\n"
,pi.dwprocessid)
;return0;
}
新建立出來的程序就是原來main程序的子程序。當然需要你先寫乙個test.cpp然後產生.exe檔案,再執行這個程式,你會發現你通過這個程式開啟了test.exe檔案。
中1.獲取當前程序id函式:
dword pid;
pid =
getcurrentprocessid()
;printf
("id:%d\n"
,pid)
;可以用來獲取父程序的id
也可以獲取子程序(寫在子程序中)
2.直接通過上面**裡面的pi.dwprocessid()來獲得
也就是你建立乙個程序的時候的pi可以看作是這個程序的虛擬物件。
詳細簡單的win中P,V操作(司機 售票員)C語言
如果還不知道建立子程序,參考 win中建立程序 正文開始 c語言windows環境下 建立訊號量 handle createsemaphore lpsecurity attributes lpsemaphoreattributes,安全屬性指標 long linitialcount,初始計數 lon...
Linux下 程序簡單建立vfork
上文,簡單得介紹了fork。這裡,我們來說一下vfork fork和vfork的區別 1.記憶體空間 fork 子程序拷貝父程序的資料段,段 vfork 子程序與父程序共享資料段 2.執行次序 fork 父 子程序的執行次序不確定 vfork 子程序先執行,在呼叫exec 或exit 之前與父程序資...
Linux下程序的建立
我們都知道,程序就是正在執行的程式。而在linux中,可以使用乙個程序來建立另外乙個程序。這樣的話,linux的程序的組織結構其實有點像linux目錄樹,是個層次結構的,可以使用pstree命令來檢視。在最上面是init程式的執行程序。它是所有程序的老祖宗。linux提供了兩個函式來建立程序。1.f...