Linux多进程(fork)

进程概念: 一个进程是一次程序执行的过程,它和程序不同,程序是静态的,它是一些保存在磁盘上可执行的代码和数据的集合,而进程是一个动态概念,也是操作系统分配资源的最小单位

fork和exec是两个重要的系统调用,fork的作用是根据现有的进程复制出一个新的进程,原来的进程称为父进程,新的进程成为子进程, 系统中运行着很多进程,这些进程都是从开始的一个进程一个一个复制出来的。

#include <sys/type.h> #include <unistd.h> pid_t fork(void);

fork调用失败返回-1,调用成功在父子进程中的返回值不一样,子进程中返回0,父进程中返回的数值大于0

#include <sys/types.h> //基本系统数据类型的头文件
#include <unistd.h> //包含了许多UNIX系统服务的函数原型 getpid函数
#include <stdio.h> //输入输出函数

int main(void){
    pid_t pid;
    char * message;
    int n;
    pid = fork();
    if(pid < 0){
        perror("fork failed");
    }
    if(pid == 0){
        n = 6;//父子进程变量n互不影响
        message = "This is the child my pid is";
    }else{
        n = 3;////父子进程变量n互不影响
        message = "This is the parent my pid is";
    }
    for(; n > 0; n--){
        printf("%s %d\n", message, getpid());
        sleep(1);
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏拂晓风起

node.js 标准/错误输出 和 process.exit

1393
来自专栏数据结构与算法

2991:2011

2991:2011 查看 提交 统计 提问 总时间限制:1000ms内存限制:65536kB描述已知长度最大为200位的正整数n,请求出2011^n的后四位。输...

3317
来自专栏xingoo, 一个梦想做发明家的程序员

python项目实现配置统一管理的方法

一个比较大的项目总是会涉及到很多的参数,最好的方法就是在一个地方统一管理这些参数。最近看了不少的python项目,总结了两种很有意思的配置管理方法。

2081
来自专栏抠抠空间

python并发编程之多进程(实现)

一、multipricessing模块的介绍      python中的多线程无法利用多核优势,如果想要充分的使用多核CPU资源,在python中大部分情况下需...

44011
来自专栏Java开发者杂谈

Python(2):创建函数模块

说明: 在使用python的时候我们除了使用内置的函数之外,可能还需要使用一些别人写的函数。或者我们写的代码也希望可以给其他人使用。要实现这样的功能,我们就需要...

34012
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(insufficient virtual memory)

如图所示,提示为:insufficient virtual memory ? 程序试图访问一个受保护或者不存在的地址。多数为可分配数组、指针等动态内存引发的错误...

3717
来自专栏前端知识分享

Vue---从后台获取数据vue-resource的使用方法

  作为前端人员,在开发过程中,我们大多数情况都需要从后台请求数据,那么在vue中怎样从后台获取数据呢?接下来,我简单介绍一下vue-resource的使用方法...

2631
来自专栏老九学堂

Java微课堂之基本选择结构2

本节讲解知识点回顾 ? ? ? 本节编程技巧和注意事项 条件选择结构关于分号和大括号什么时候可以打,什么时候不用打,它的意义是不同的。

2756
来自专栏自动化测试实战

flask第二十篇——模板【3】

2336
来自专栏流媒体

dll生成和使用

992

扫码关注云+社区