網(wǎng)站首頁 編程語言 正文
進程的ID
進程的ID,可稱為PID。它是進程的唯一標識,類似于我們的身份證號是唯一標識,因為名字可能會和其他人相同,生日可能會與其他人相同……大多數(shù)的事件都可能會與其他人相同,而身份證號每個人都是不一樣的,這是社會中自己的唯一標識。
當進程被創(chuàng)建的時候,系統(tǒng)就自動分配給進程一個唯一的PID,PID是正數(shù)。
在Linux中有兩個系統(tǒng)調(diào)用函數(shù),可以獲取進程的ID。
pid_t getpid(void); //獲取進程ID(PID) pid_t getppid(void);//獲取其父進程ID(PPID)
所需頭文件
# include <sys/types.h> # include <unistd.h>
getpid()
返回的時調(diào)用該函數(shù)的進程的PID,getppid()
返回的是調(diào)用該函數(shù)的進程的父進程ID(PPID),返回值類型是pid_t
,實際上是無符號整型,這兩個函數(shù)不會出現(xiàn)調(diào)用失敗的情況
開始測試……
//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; }
//運行結(jié)果
i am parent, my id is 1593
i am child, my id is 7048
進程創(chuàng)建
【進程創(chuàng)建的主要事件】
1、新的批處理作業(yè)
2、由進程派生出一個進程
3、因為提供服務(wù)而創(chuàng)建
4、交互登錄
操作系統(tǒng)創(chuàng)建進程包含的步驟
1、分配唯一的進程標識符
2、分配空間
3、初始化進程控制塊(PCB)
4、修改連接
5、創(chuàng)建/擴充其他數(shù)據(jù)結(jié)構(gòu)
對于“修改連接”,操作系統(tǒng)會把調(diào)度隊列保存成某些數(shù)據(jù)結(jié)構(gòu),新的進程需要放置在數(shù)據(jù)結(jié)構(gòu)里,所以需要重新連接。
在Linux系統(tǒng)中,可以創(chuàng)建新進程的系統(tǒng)調(diào)用函數(shù)只有一個fork
#include <unistd.h> pid_t fork(void);
描述:
fork()函數(shù)可以創(chuàng)建子進程,所需的頭文件為unistd.h, 返回兩次。
- 如果返回的是0,則表示為子進程
- 如果返回的是非0,則表示為父進程
原文鏈接:https://blog.csdn.net/qq_56870066/article/details/125091174
相關(guān)推薦
- 2022-11-19 Kotlin協(xié)程之Flow異常示例處理_Android
- 2022-04-06 python數(shù)據(jù)分析實戰(zhàn)指南之異常值處理_python
- 2022-05-13 C語言中判斷素數(shù)(求素數(shù))的思路與方法實例_C 語言
- 2022-05-13 Python實現(xiàn)簡易的圖書管理系統(tǒng)_python
- 2022-07-06 C#中DataSet,DataTable,DataView的區(qū)別與用法_C#教程
- 2023-05-19 Kotlin?Suspend掛起函數(shù)的使用詳解_Android
- 2022-09-17 C/C++?中實現(xiàn)讓控制臺暫停的方法_C 語言
- 2022-03-14 文件上傳錯誤the request doesn't contain a multipart/form
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支