日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Windows下创建进程简介

發布時間:2023/11/27 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows下创建进程简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正在執行的應用程序稱為進程,進程不僅僅是指令和數據,它還有狀態。狀態是保存在處理器寄存器中的一組值,如當前執行指令的地址、保存在內存中的值,以及唯一定義進程在任一時刻任務的所有其他值。進程與應用程序的一個重要的區別在于,進程運行時,進程的狀態會發生變化。

進程是應用程序的基本構建塊。同時運行的多個應用程序實際上就是多個進程。要支持多個用戶,通常是利用具有不同權限的多個進程實現的。除非一個進程創建時顯式與另一進程共享狀態,否則其所有狀態應是該進程私有的,即對其他進程不可見。

進程的優點在于每個進程是孤立的,一個進程死掉對其他正在運行的進程沒有任何影響。多進程的缺點是每個進程需要自己的TLB(Translation Look-aside Buffer,轉換旁視緩沖器)條目,從而增加了TLB和緩存的未命中率。使用多進程的另一個缺點是進程之間共享數據需要顯式控制,而這種操作可能開銷很大。

谷歌的Chrome瀏覽器是多進程的,瀏覽器可以使用多個標簽頁顯示不同的網頁。每個標簽頁是一個單獨的進程,這樣一個標簽頁失敗不會導致整個瀏覽器終止。瀏覽器曾經是多線程的,如果一個線程執行不良代碼,整個瀏覽器就會崩潰。

在Windows下,CreateProcess函數用于創建一個新進程,該進程獨立于創建進程運行,其聲明如下:

WINBASEAPI
BOOL
WINAPI
CreateProcessA(_In_opt_ LPCSTR lpApplicationName,_Inout_opt_ LPSTR lpCommandLine,_In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes,_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,_In_ BOOL bInheritHandles,_In_ DWORD dwCreationFlags,_In_opt_ LPVOID lpEnvironment,_In_opt_ LPCSTR lpCurrentDirectory,_In_ LPSTARTUPINFOA lpStartupInfo,_Out_ LPPROCESS_INFORMATION lpProcessInformation);

該函數需要幾個參數,其中3個重要參數為要運行的進程的名稱(及所有參數),指向STARTUPINFO結構的指針,以及指向PROCESS_INFORMATION結構的指針。下表列出了CreateProcess函數的所有參數:

第一個參數是應用程序的名稱,第二個參數是命令行。這兩個參數共同起作用,如果其中一個為空,另一個就用作整個命令行。如果兩者都非空,將執行第一個參數命名的應用程序,但傳遞第二個參數給出的命令行。這就是說,命令行中的第一個參數應該與應用程序名重復。當調用CreateProcess函數的Unicode版本CreateProcessW時,可以修改命令行,因此命令行應該存儲于變量中,而非字符串常量中。如果應用程序名為空,那么所執行的應用程序應該是命令行中以空格符分隔的第一串文本。如果應用程序的路徑中包含空格,則整個路徑和程序名都應包含在引號中。

第三個和第四個參數為可選參數,是指向SECURITY_ATTRIBUTES結構的指針。第一個結構給出被創建進程的屬性,第二個為被創建進程的第一個線程的屬性。這些屬性主要確定被創建進程的子進程是否繼承被創建進程所有的句柄。指針為空值則向被創建進程提供默認屬性。

STARTUPINFO和PROCESS_INFORMATION結構應在調用前填充零。STARTUPINFO結構的cb成員應設置為此結構的大小。CreateProcess函數調用將復制STARTUPINFO結構中的信息。最重要的信息是新進程的句柄,將記錄在PROCESS_INFORMATION結構的hProcess成員中。

要將參數傳遞給子進程,第一個命令行參數必須重復應用程序名,整個命令行會被傳遞給子進程

注:以上內容主要整理自:《多核應用編程實戰》

以下是測試代碼段:

int process_programming_windows()
{char filename[MAX_PATH];auto size = GetModuleFileName(nullptr, filename, MAX_PATH);if (size == 0) {fprintf(stderr, "fail to GetModuleFileName\n");return -1;}// reference: https://docs.microsoft.com/en-us/windows/win32/procthread/creating-processesSTARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemory(&si, sizeof(si));si.cb = sizeof(si);ZeroMemory(&pi, sizeof(pi));char argument[512];//sprintf(argument, "\"%s\" C:\\windows\\system32\\cmd.exe", filename);sprintf(argument, "C:\\windows\\system32\\cmd.exe");// Start the child process. if (!CreateProcess(nullptr,argument,						// Command linenullptr,						// Process handle not inheritablenullptr,						// Thread handle not inheritablefalse,							// Set handle inheritance to FALSE0,								// No creation flagsnullptr,						// Use parent's environment blocknullptr,						// Use parent's starting directory &si,							// Pointer to STARTUPINFO structure&pi)							// Pointer to PROCESS_INFORMATION structure) {fprintf(stderr, "fail to CreateProcess: %d\n", GetLastError());return -1;}fprintf(stdout, "##### success to create child process #####\n");// Wait until child process exits.WaitForSingleObject(pi.hProcess, INFINITE);fprintf(stdout, "##### child process exit #####\n");// Close process and thread handles. CloseHandle(pi.hProcess);CloseHandle(pi.hThread);return 0;
}

執行結果如下圖所示:

GitHub:https://github.com/fengbingchun/Messy_Test

總結

以上是生活随笔為你收集整理的Windows下创建进程简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品人成 | 色婷婷97 | 69看片| 亚洲一区精品视频在线观看 | 亚洲综合免费观看高清完整版在线 | 日批视频免费看 | 欧美一区二区三区四区五区六区 | 奇米影视狠狠干 | 麻豆精品国产传媒 | 五月激情在线观看 | 网红日批视频 | 亚洲视频在线播放免费 | 秋霞在线观看视频 | 国产毛茸茸 | 中文一区二区在线播放 | 久久久无码18禁高潮喷水 | 超碰国产97 | 国产亚洲天堂 | 肉色欧美久久久久久久免费看 | 影音av资源 | 久久成人乱码欧美精品一区二区 | 久久午夜场 | 久久国产精品免费看 | eeuss日韩| 亚洲一区二区三区不卡视频 | 日韩av在线不卡 | 九九热精品在线 | 国产免费黄色小视频 | 国产亚洲精品成人无码精品网站 | 自拍视频在线观看 | 日本在线一区二区三区 | 免费成人美女女 | 一区二区三区网 | 在线免费观看的av | 成人精品视频一区二区 | 不卡av在线免费观看 | 国产一国产精品一级毛片 | 免费的黄色的视频 | 欧美日韩国产三级 | 国产麻豆午夜三级精品 | 超碰天堂 | 日韩黄色录像 | 双性懵懂美人被强制调教 | chinese中国性按摩hd | videos另类灌满极品另类 | 日韩一区二区a片免费观看 伊人网综合在线 | www.亚洲高清 | 日本五十路女优 | 动漫美女露胸网站 | 阿的白色内裤hd中文 | 日韩淫视频 | 日韩v欧美| jizzjizz视频| 久久久噜噜噜www成人 | 国产欧美日韩精品在线观看 | 久久久一级黄色片 | 相亲对象是问题学生在线观看 | 国产99999 | 天天综合久久综合 | 狠狠cao日日穞夜夜穞av | 精品国产91乱码一区二区三区 | 国产精品视频入口 | 免费看污黄网站在线观看 | 超碰超碰超碰超碰 | 中文字幕一区二区三区乱码 | 天天干天天舔天天射 | 国产一级三级 | 这里只有久久精品 | 奇米色婷婷 | 91theporn国产在线观看 | 69xxx免费视频 | 亚洲第一综合色 | 手机av免费| 搡老熟女老女人一区二区 | 黑白配av | 免费荫蒂添的好舒服视频 | 在线国产中文字幕 | 图片一区二区 | 亚洲午夜免费 | 伊人www| 99国产精品久久 | 久久久久久久久久久综合 | 欧美精品在线视频 | 黄视频国产 | 国精产品一区一区三区在线 | 日本在线视频www | 中文字幕一区二区三区人妻不卡 | 亚洲无码久久久久久久 | 日本h在线| 美女少妇一区二区 | 亚洲三级网 | 艳妇臀荡乳欲伦交换h漫 | 一区二区在线看 | 影音先锋91| 欧美成人黄 | 国产精品三级在线 | 欧美久久天堂 | 亚洲a中文字幕 | 欧美整片在线观看 |