进程退出、孤儿进程、僵尸进程

进程退出

子进程退出,有些资源需要父进程去释放

cpp 复制代码
/*
    #include <stdlib.h>
    void exit(int status);

    #include <unistd.h>
    void _exit(int status);

    status参数: 进程退出的一个状态信息。父进程回收资源的时候可以获取
*/

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main() {
    printf("hello\n");
    printf("world");
    //exit(0);
    _exit(0);
    return 0;
}

第一个printf带上了\n会自动做刷新IO缓冲区的操作,第二个没有\n就一直在缓冲区里面

调用标准C库的exit函数时,它会再做一次刷IO新缓冲区的操作,输出world

但是Linux的_exit函数就不会做这个操作,最后只输出hello

孤儿进程

父进程执行完毕,只有子进程在执行,然后子进程的ppid就是1 也就是init

僵尸进程

wait()和waitpid()是释放子进程的函数

相关推荐
又逢乱世27 分钟前
清除 Ubuntu 磁盘空间
linux·运维·服务器
炎码工坊1 小时前
云原生安全之PaaS:从基础到实践的技术指南
运维·安全·网络安全·云原生·运维开发
张国荣家的弟弟2 小时前
为何在VMware中清理CentOS虚拟机后,本地磁盘空间未减少的问题解决
linux·运维·centos
甘北2 小时前
docker commit除了提交容器成镜像,还能搞什么之修改cmd命令
linux·运维·docker
吐泡泡_2 小时前
动静态库--
linux
努力学习的小廉2 小时前
深入了解linux系统—— 操作系统的路径缓冲与链接机制
android·linux·服务器
蠢货爱好者3 小时前
Linux中的nfs网络文件系统
linux·服务器·网络
ZZH1120KQ3 小时前
Linux概述
linux·ubuntu·ssh
余辉zmh3 小时前
【Linux网络篇】:Socket网络套接字以及简单的UDP网络程序编写
linux·网络·udp
酥暮沐3 小时前
Linux的启动流程
linux·服务器·网络·启动流程