亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++進(jìn)程的創(chuàng)建和進(jìn)程ID標(biāo)識(shí)詳細(xì)介紹

 更新時(shí)間:2022年08月26日 16:58:04   作者:小小酥誒  
傳統(tǒng)的C++(C++98)中并沒(méi)有引入線程這個(gè)概念。linux和unix操作系統(tǒng)的設(shè)計(jì)采用的是多進(jìn)程,進(jìn)程間的通信十分方便,同時(shí)進(jìn)程之間互相有著獨(dú)立的空間,不會(huì)污染其他進(jìn)程的數(shù)據(jù),天然的隔離性給程序的穩(wěn)定性帶來(lái)了很大的保障

進(jìn)程的ID

進(jìn)程的ID,可稱為PID。它是進(jìn)程的唯一標(biāo)識(shí),類似于我們的身份證號(hào)是唯一標(biāo)識(shí),因?yàn)槊挚赡軙?huì)和其他人相同,生日可能會(huì)與其他人相同……大多數(shù)的事件都可能會(huì)與其他人相同,而身份證號(hào)每個(gè)人都是不一樣的,這是社會(huì)中自己的唯一標(biāo)識(shí)。

當(dāng)進(jìn)程被創(chuàng)建的時(shí)候,系統(tǒng)就自動(dòng)分配給進(jìn)程一個(gè)唯一的PID,PID是正數(shù)。

在Linux中有兩個(gè)系統(tǒng)調(diào)用函數(shù),可以獲取進(jìn)程的ID。

  pid_t getpid(void); //獲取進(jìn)程ID(PID)
  pid_t getppid(void);//獲取其父進(jìn)程ID(PPID)

所需頭文件

# include <sys/types.h>
# include <unistd.h>

getpid()返回的時(shí)調(diào)用該函數(shù)的進(jìn)程的PID,getppid()返回的是調(diào)用該函數(shù)的進(jìn)程的父進(jìn)程ID(PPID),返回值類型是pid_t,實(shí)際上是無(wú)符號(hào)整型,這兩個(gè)函數(shù)不會(huì)出現(xiàn)調(diào)用失敗的情況

開(kāi)始測(cè)試……

  //mycode.c文件
# include <stdio.h>
# include <sys/types.h>
# include <unistd.h>
int main(void)
{
  //創(chuàng)建子進(jìn)程
  pid_t id = fork();
  if(id == 0)
  {
 //子進(jìn)程
  printf("i am child, my id is %d\n",getpid());
  }
  else{                                                                                                                                                         
  //父進(jìn)程
  printf("i am parent, my id is %d\n",getppid());
  }
  return 0;
}

//運(yùn)行結(jié)果
i am parent, my id is 1593
i am child, my id is 7048

進(jìn)程創(chuàng)建

【進(jìn)程創(chuàng)建的主要事件】

1、新的批處理作業(yè)

2、由進(jìn)程派生出一個(gè)進(jìn)程

3、因?yàn)樘峁┓?wù)而創(chuàng)建

4、交互登錄

操作系統(tǒng)創(chuàng)建進(jìn)程包含的步驟

1、分配唯一的進(jìn)程標(biāo)識(shí)符

2、分配空間

3、初始化進(jìn)程控制塊(PCB)

4、修改連接

5、創(chuàng)建/擴(kuò)充其他數(shù)據(jù)結(jié)構(gòu)

對(duì)于“修改連接”,操作系統(tǒng)會(huì)把調(diào)度隊(duì)列保存成某些數(shù)據(jù)結(jié)構(gòu),新的進(jìn)程需要放置在數(shù)據(jù)結(jié)構(gòu)里,所以需要重新連接。

在Linux系統(tǒng)中,可以創(chuàng)建新進(jìn)程的系統(tǒng)調(diào)用函數(shù)只有一個(gè)fork

#include <unistd.h>
 pid_t fork(void);

描述:

fork()函數(shù)可以創(chuàng)建子進(jìn)程,所需的頭文件為unistd.h, 返回兩次。

  • 如果返回的是0,則表示為子進(jìn)程
  • 如果返回的是非0,則表示為父進(jìn)程

到此這篇關(guān)于C++進(jìn)程的創(chuàng)建和進(jìn)程ID標(biāo)識(shí)詳細(xì)介紹的文章就介紹到這了,更多相關(guān)C++進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中命名空間的概念及使用詳解

    C++中命名空間的概念及使用詳解

    這篇文章主要介紹了C++中命名空間的概念及使用詳解,使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱進(jìn)行本地化,以避免命名沖突或名字污染,namespace關(guān)鍵字就是針對(duì)這種問(wèn)題而出現(xiàn)的,需要的朋友可以參考下
    2023-08-08
  • Qt實(shí)現(xiàn)定時(shí)器的兩種方法分享

    Qt實(shí)現(xiàn)定時(shí)器的兩種方法分享

    這篇文章主要為大家詳細(xì)介紹了Qt中實(shí)現(xiàn)定時(shí)器的兩種不同方法,文中的示例代碼講解詳細(xì),對(duì)我們了解Qt有一定的幫助,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • C語(yǔ)言中求余運(yùn)算符的使用解讀

    C語(yǔ)言中求余運(yùn)算符的使用解讀

    這篇文章主要介紹了C語(yǔ)言中求余運(yùn)算符的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 利用C語(yǔ)言解決八皇后問(wèn)題以及解析

    利用C語(yǔ)言解決八皇后問(wèn)題以及解析

    這篇文章主要給大家介紹了關(guān)于利用C語(yǔ)言解決八皇后問(wèn)題以及解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換

    Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了Matlab實(shí)現(xiàn)讀寫txt文件數(shù)據(jù)與進(jìn)制轉(zhuǎn)換的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C++中實(shí)現(xiàn)子進(jìn)程執(zhí)行和管道通信詳解

    C++中實(shí)現(xiàn)子進(jìn)程執(zhí)行和管道通信詳解

    在這篇博客中,我們將深入探索如何在 C++ 程序中實(shí)現(xiàn)子進(jìn)程的創(chuàng)建與執(zhí)行,以及父子進(jìn)程間的管道通信,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • cmake跨平臺(tái)構(gòu)建工具的學(xué)習(xí)筆記

    cmake跨平臺(tái)構(gòu)建工具的學(xué)習(xí)筆記

    CMake是一個(gè)跨平臺(tái)的安裝/編譯工具,通過(guò)CMake我們可以通過(guò)簡(jiǎn)單的語(yǔ)句來(lái)描述所有平臺(tái)的安裝/編譯過(guò)程,下面這篇文章主要給大家介紹了關(guān)于cmake跨平臺(tái)構(gòu)建工具的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • C++簡(jiǎn)單實(shí)現(xiàn)shared_ptr的代碼

    C++簡(jiǎn)單實(shí)現(xiàn)shared_ptr的代碼

    智能指針用于資源管理,為了保證資源的操作得到順利的執(zhí)行防止資源泄露,因此大多數(shù)實(shí)現(xiàn)都以noexcept在參數(shù)列表后聲明為不拋出異常,這篇文章主要介紹了C++簡(jiǎn)單實(shí)現(xiàn)shared_ptr的代碼,需要的朋友可以參考下
    2022-09-09
  • C++實(shí)操之內(nèi)聯(lián)成員函數(shù)介紹

    C++實(shí)操之內(nèi)聯(lián)成員函數(shù)介紹

    大家好,本篇文章主要講的是C++實(shí)操之內(nèi)聯(lián)成員函數(shù)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語(yǔ)言 動(dòng)態(tài)內(nèi)存開(kāi)辟常見(jiàn)問(wèn)題解決與分析流程

    C語(yǔ)言 動(dòng)態(tài)內(nèi)存開(kāi)辟常見(jiàn)問(wèn)題解決與分析流程

    動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存
    2022-03-03

最新評(píng)論