首页 > 系统相关 >进程创建

进程创建

时间:2023-02-08 20:35:57浏览次数:33  
标签:fork 创建 pid 进程 返回值 ID

fork进程创建

  • 创建子进程,会复制当前的父进程
  • 子进程和父进程运行在分开的内存空间,但是在fork()时两者有相同的内容
fork:用于创建子进程
    #include <sys/types.h>
    #include <unistd.h>

    pid_t fork(void);
    作用:用于创建子进程
    返回值(pid_t):
        fork的返回值会返回两次。一次是在父进程中,一次是在子进程中。
        在父进程中,返回创建的子进程的ID
        在子进程中,返回0
        如何区分父进程和子进程:通过fork的返回值(父进程>0)
        在父进程中返回-1,表示创建子进程失败,并且设置errno
		
    getpid():获取当前进程的ID
    getppid():获取父进程的ID

父子进程虚拟地址空间情况

  • fork后产生的子进程用户区数据和父进程用户去数据一样
  • 内核区除了PID号不一样,其他都一样
  • 子进程的栈空间也会有pid(局部变量),但是pid=0
  • 写时拷贝:在写时才会复制地址空间。内核此时并不复制整个进程的地址空间,而是让父子进程共享同一个地址空间。

标签:fork,创建,pid,进程,返回值,ID
From: https://www.cnblogs.com/xiaoqing-ing/p/17103182.html

相关文章

  • linux查看进程信息
    top实时查看进程信息,展示进程id,使用内存,占用cpu等信息,可以查看内容占用最多、cpu使用最多的进程,然后再根据进程id查看进程的详细信息。实时更新ps瞬时查看进程情况,ps-e......
  • 进程通信
    进程通信1、什么是进程间通信2、共享存储3、消息传递1)直接通信方式2)间接通信方式4、管道通信知识回顾......
  • 进程间的通信方式(六种)
    目录前言管道消息队列共享内存信号量信号Socket参考文章:https://blog.csdn.net/qq_34827674/article/details/107678226前言前提知识:每个进程都有自己的用户空间,而......
  • 创建keycloak用户、角色、用户角色映射关系(Java API + Rest API实现)
    @Slf4j@ServicepublicclassKeyCloakService{privateRestTemplaterestTemplate;privateKeycloakAdminClientkeycloakAdminClient;/***kc新......
  • 进程基础知识
    程序和进程程序:(文件)进程:(资源)并行与并发并行:同一时刻,有多条指令在多个处理器上同时执行并发:在同一时刻只能有一条指令执行,但多个进程指令被快速轮换,使得宏观上具有......
  • linux内核源码解析03–启动代码分析之主内核页表创建
    Linux初始化过程页表建立Linux初始化过程,会依次建立如下页表映射:1.恒等映射:页表基地址idmap_pg_dir;2.粗粒度内核镜像映射:页表基地址init_pg_dir;3.fixmap映射:页表基地......
  • 进程与线程
    一、进程与线程的概念;           进程的解释:     二、进程和线程之间的关系:         谷歌浏览器的架构图:   ......
  • 创建maven的java工程、创建maven时创建web程序
    创建maven的java工程     这样一个maven项目就创建完成了创建maven时创建web程序   ......
  • springmvc创建后缺少WEB-INF解决
    右键项目=>properties修改项目模块为3.1   在src/main/webapp创建WEB-INF文件夹   在WEB-INF中创建名为web.xml文件并粘贴以下代码<?xmlversion="1.0"......
  • javaScript 高级语法 - 构造函数创建对象,原型对象 prototype,对象原型 _proto_,原型对象
    1.构造函数创建对象functionHuman(id,name){this.id=id;//属性this.name=name;this.info=function(){//方法console.log("info:"+this.id+this.name)......