最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++進程的創(chuàng)建和進程ID標識詳細介紹

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

進程的ID

進程的ID,可稱為PID。它是進程的唯一標識,類似于我們的身份證號是唯一標識,因為名字可能會和其他人相同,生日可能會與其他人相同……大多數(shù)的事件都可能會與其他人相同,而身份證號每個人都是不一樣的,這是社會中自己的唯一標識。

當進程被創(chuàng)建的時候,系統(tǒng)就自動分配給進程一個唯一的PID,PID是正數(shù)。

在Linux中有兩個系統(tǒng)調用函數(shù),可以獲取進程的ID。

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

所需頭文件

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

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

開始測試……

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

//運行結果
i am parent, my id is 1593
i am child, my id is 7048

進程創(chuàng)建

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

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

2、由進程派生出一個進程

3、因為提供服務而創(chuàng)建

4、交互登錄

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

1、分配唯一的進程標識符

2、分配空間

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

4、修改連接

5、創(chuàng)建/擴充其他數(shù)據(jù)結構

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

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

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

描述:

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

  • 如果返回的是0,則表示為子進程
  • 如果返回的是非0,則表示為父進程

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

相關文章

  • OpenCV實現(xiàn)相機標定板

    OpenCV實現(xiàn)相機標定板

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)相機標定板,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 實例分享cmake編譯一個簡單c++項目(demo)

    實例分享cmake編譯一個簡單c++項目(demo)

    下面通過一個小例子來說明cmake編譯一個c++項目,生成可執(zhí)行文件,需要的朋友可以參考下
    2020-02-02
  • C++中形參和實參的區(qū)別及說明

    C++中形參和實參的區(qū)別及說明

    這篇文章主要介紹了C++中形參和實參的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C++鏈接器工作原理詳解

    C++鏈接器工作原理詳解

    當文件見過編譯后就需要進行一個鏈接的操作接下來我們就說說什么是鏈接,本文給大家介紹了C++鏈接器是如何工作的,文章通過代碼示例和圖文介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    C++使用HTTP庫和框架輕松發(fā)送HTTP請求

    使用C++編程發(fā)送HTTP請求通常需要使用第三方的HTTP庫或框架,本文主要介紹了C++使用HTTP庫和框架輕松發(fā)送HTTP請求,感興趣的可以了解一下
    2023-12-12
  • 二叉搜索樹的插入與刪除(詳細解析)

    二叉搜索樹的插入與刪除(詳細解析)

    添加結點其實很容易,我們只需要找到結點所行對應的位置就可以了,而且沒有要求是平衡的二叉搜索樹,因此每次添加結點都是在葉子結點上操作,不需要修改二叉搜索樹整體的結構
    2013-09-09
  • C++實現(xiàn)飛機大戰(zhàn)游戲

    C++實現(xiàn)飛機大戰(zhàn)游戲

    這篇文章主要為大家詳細介紹了C++實現(xiàn)飛機大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++冒泡排序算法實例

    C++冒泡排序算法實例

    這篇文章主要介紹了C++冒泡排序算法實例,本文先是介紹了什么是冒泡排序,然后給出了實現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C語言實現(xiàn)通訊錄功能的流程與代碼

    C語言實現(xiàn)通訊錄功能的流程與代碼

    通訊錄是一個可以記錄親人、好友信息的工具,這篇文章主要為大家詳細介紹了C語言實現(xiàn)通訊錄管理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • CStdioFile的用法詳細解析

    CStdioFile的用法詳細解析

    CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數(shù)。如果在CStdioFile 中調用了這幾個函數(shù),將會出現(xiàn)CNoSupported 異常
    2013-09-09

最新評論

柏乡县| 连州市| 灵丘县| 喀喇| 南溪县| 马龙县| 微山县| 和田县| 卫辉市| 黄龙县| 开化县| 舒城县| 伊金霍洛旗| 阿鲁科尔沁旗| 北海市| 馆陶县| 博乐市| 专栏| 阿城市| 通许县| 台前县| 水城县| 若尔盖县| 杭锦后旗| 天台县| 区。| 泾阳县| 左贡县| 东莞市| 孙吴县| 友谊县| 嵩明县| 阿克| 五原县| 安康市| 思茅市| 临漳县| 项城市| 海城市| 长武县| 贵溪市|