前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux多进程(fork)

Linux多进程(fork)

作者头像
用户3094376
发布2018-09-12 11:04:04
2K0
发布2018-09-12 11:04:04
举报
文章被收录于专栏:gaoqin31gaoqin31

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

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

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

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

代码语言:javascript
复制
#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;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档