操作系统第一次上机实验-Linux系统下的进程创建

2020-10-29  本文已影响0人  Summer2077

本文使用Linux系统,语言使用C语言

1.如何在Linux系统下,编译运行C语言

1.1创建编写一个.c文件 如a.c

1.2编译.c 文件

gcc a.c -o a.out

1.3运行.c文件

./ a.out

2.实验

2.1实验一:创建进程

#include <stdio.h>

int main(){
    int p1,p2,i;
    while((p1=fork())==-1);

    if(p1==0){
        for(i=0;i<10;i++){
            printf("daugter %d ,pid= %d\n",i,getpid());     
        }   
    }else{
        while((p2=fork())==-1);
        if(p2==0){
            for(i=0;i<10;i++){
                printf("som %d ,pid= %d\n",i,getpid());                 }       
        }else{
            for(i=0;i<10;i++){
                printf("parent %d ,pid= %d\n",i,getpid());              
            }
        }
    }
    return 0;   
}

结果:


捕获.PNG

2.2实验二:创建进程,增加sleep语句使结果交叉

#include <stdio.h>
int main() {
    int p1, p2, i;
    while ((p1 = fork()) == -1);
    /*创建进程 p1*/
    if(p1 == 0) {
        for (i = 0; i < 8; i++) {
            printf("daughter %d \n", i);
            sleep(4);
        }
    } else {
        while ((p2 = fork()) == -1);
        /*创建进程 p2*/
        if (p2 == 0) {
            for (i = 0; i < 8; i++) {
                printf("son %d \n", i);
                sleep(4);
            }
        } else {
            for (i = 0; i < 8; i++) {
                printf("parent %d \n", i);
                sleep(4);
            }
        }
    }
    return 0;
}

结果:


2.3实验二:创建进程,增加sleep语句使结果交叉

上一篇下一篇

猜你喜欢

热点阅读