进程创建

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
  • 写时拷贝:在写时才会复制地址空间。内核此时并不复制整个进程的地址空间,而是让父子进程共享同一个地址空间。
posted @   小秦同学在上学  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示