基于linux下的高并发服务器开发(第二章)- 2.3 进程创建

cpp 复制代码
/*
    #include <sys/types.h>
    #include <unistd.h>

    pid_t fork(void)
        函数的作用:用于创建子进程
        返回值:
            fork()的返回值会返回两次。一次是在父进程中,一次是在子进程中
            在父进程中返回创建的子进程的ID,
            在子进程中返回0
            如何区分父进程和子进程:通过fork返回值
            在父进程中返回-1,表示创建子进程失败,并且设置errno
*/
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>

int main(){

    //创建子进程
    pid_t pid = fork();

    //判断是父进程还是子进程
    if(pid > 0){
        printf("pid : %d\n",pid);
        //如果大于0,返回的是创建的子进程的进程号,当前是父进程
        printf("I am parent process,pid : %d,ppid : %d\n",getpid(),getppid());
    }else if(pid == 0){
        //当前是子进程
        printf("i am child process,pid : %d,ppid : %d\n",getpid(),getppid());
    }

    // for 循环
    for(int i = 0;i<3;i++){
        printf("i : %d , pid : %d\n",i,getpid());
        sleep(1);
    }

    return 0;
}
相关推荐
XiaoMu_001几秒前
自动化漏洞扫描与预警平台
运维·网络·自动化
醉风塘3 分钟前
Linux进程管理:深度解析ps -ef命令及其高级应用
linux·运维·服务器
不做无法实现的梦~4 分钟前
PX4各个模块的作用(3)
linux·stm32·嵌入式硬件·机器人·自动驾驶
会周易的程序员11 分钟前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
WJ.Polar11 分钟前
FTP、Telnet、PPP、SNMP协议
服务器·网络
不爱缺氧i13 分钟前
ubuntu离线安装mariadb
linux·ubuntu·mariadb
疯狂敲代码的老刘25 分钟前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
爆米花byh29 分钟前
在RockyLinux9环境的Storm2.8.3单机版安装
linux·中间件·storm
纤纡.30 分钟前
Linux 下 MySQL 数据类型与约束:第三章核心表格归纳与实战应用
linux·mysql
REDcker32 分钟前
gRPC完整文档
服务器·网络·c++·网络协议·grpc