【操作系统实验】fork函数理解

一、fork()函数的作用

开辟出一块内存空间

二、父进程与子进程

被复制的进程是父进程,复制出来的进程叫子进程

三、注意事项

1.父进程的进程号一定小于子进程(因为肯定先有了父进程,才会有子进程)
2.父进程调用fork()函数的返回值是子进程号
3.子进程调用fork()函数的返回值是0
4.由2,3,可以通过函数返回值来区分是父进程还是子进程

四、实验

要求:编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一句话,观察记录屏幕上的显示结果。

#include <stdio.h>
main()
{
    int p1,p2;
    p1 = fork();
    if(p1 == 0)
    {
        printf( "This is child process 1! pid is %d:\n", getpid());
    }
    else if(p1 > 0)
    {
        printf( "This is parent process! pid is %d:\n", getpid());
        p2 = fork();
        if(p2 == 0)
        {
            printf( "This is child process 2! pid is %d:\n", getpid());
        }
        else if(p2 > 0)
        {
            printf( "This is parent process! pid is %d:\n", getpid());
        }
        else
        {
            printf("fork()error!\n");
        }
    }
    else
    {
       printf("fork()error!\n");
    }
}

结果如下:
在这里插入图片描述

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值