Linux多进程:fork——创建子进程

/*

    创建进程
    一次fork,两次执行

    子进程中不执行fork

    pid_t fork(void);
        返回值:
            0:子进程
            在父进程中返回子进程的id
            -1:失败,在父进程中返回

    通过fork的返回值区分子父进程

    sleep(1); 休眠1秒

    进程组:一个或多个进程的集合,进程组号pgid


    1.父子进程相互独立;
    2.子进程刚被创建,还没有执行任何写操作时,父子进程内的用户区数据、文件描述符等相同,
    读时共享,写时拷贝。

*/


#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main() {
    int num = 10;

    pid_t ret = fork();//pid_t:int

    if(ret == -1) {
        perror("fork");
        return -1;
    }else if(ret == 0) {
        num += 10;
        printf("This is child process, pid :%d, ppid :%d, pgid :%d.\n", getpid(), getppid(), getpgid(getpid()));
        printf("num += 10 :%d\n", num);
    }else if(ret > 0) {
        num += 100;
        printf("This is parent process, pid :%d, ppid :%d, pgid :%d.\n", getpid(), getppid(), getpgid(getpid()));
        printf("num += 100 :%d\n", num);
    }

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值