进程的管理

#include <unistd.h>

void _exit(int status);

#include <stdlib.h>

void _Exit(int status);

status参数:是进程退出时的状态信息,父进程在回收子进程资源的时候可以获取到

cpp 复制代码
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

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

exit()函数退出时会刷新I/O缓冲,而_exit()函数退出时不会刷新I/O缓冲

cpp 复制代码
#include <sys/types.h>
#include <unistd.h>
#include<stdio.h>
int main() {
    //创建子进程
    pid_t pid = fork();
    //判断是父进程还是子进程
    if(pid > 0) {
        printf("I am parent process, pid : %d, ppid : %d\n", getpid(), getppid());
    } else if(pid == 0) {
        sleep(1);
        printf("I am child process, pid : %d, ppid : %d\n", getpid(), getppid());
    }
    for(int i = 0; i < 5; i++) {
        printf("i : %d\n", i);
    }
    return 0;
}
cpp 复制代码
#include <sys/types.h>
#include <unistd.h>
#include<stdio.h>
int main() {
    //创建子进程
    pid_t pid = fork();
    //判断是父进程还是子进程
    if(pid > 0) {
        while(1) {
            printf("I am parent process, pid : %d, ppid : %d\n", getpid(), getppid());
            sleep(1);
        }
    } else if(pid == 0) {
        printf("I am child process, pid : %d, ppid : %d\n", getpid(), getppid());
    }
    for(int i = 0; i < 5; i++) {
        printf("i : %d\n", i);
    }
    return 0;
}
相关推荐
wanhengidc1 分钟前
云手机存在哪些技术瓶颈
运维·服务器·安全·智能手机·生活
水天需0103 分钟前
Vim 标签页(Tab)操作详解
linux
管理大亨4 分钟前
ELK + Redis Docker 企业级部署落地方案
大数据·运维·elk·elasticsearch·docker·jenkins
IT199515 分钟前
C++使用“长度前缀法”解决TCP“粘包 / 拆包”问题
服务器·网络·c++·tcp/ip
德迅云安全—珍珍16 分钟前
物理服务器、云服务器、裸金属服务器的区别
运维·服务器
DeeplyMind28 分钟前
第5章:并发与竞态条件-15:Atomic Variables
linux·驱动开发·ldd
好记忆不如烂笔头abc32 分钟前
超微服务器的ipmi调整风扇运行模式
运维·服务器
一个响当当的名号38 分钟前
ASP.NET 期末突击
运维·服务器
秋深枫叶红42 分钟前
嵌入式第三十五篇——linux系统编程——exec族函数
linux·前端·学习
@Wufan1 小时前
ubuntu服务器子用户(无sudo权限)安装/切换多个版本cuda
linux·服务器·ubuntu·cuda