• 大小: 8KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-05-22
  • 语言: 其他
  • 标签: C/C+  

资源简介

山东大学 软件学院 2017-2018学年春季 操作系统实验一 独立实验答案

资源截图

代码片段和文件信息

/*
  Author: KMDJ
  PublishedOn: CSDN
  Filename: exp1.c
*/

#include “exp1.h“
int main(int argc char *argv[]){
    int i;
    int pid1;
    int pid2;
    int status1;
    int status2;
    char *arg1[] = {“/bin/ls“ “-a“ NULL};
    char *arg2[] = {“/bin/ps“ “-l“ NULL};
    signal(SIGINT(sighandler_t)sigcat);
    
    pid1=fork();

    if(pid1<0){
        printf(“Create Process failed!\n“);
        exit(EXIT_FAILURE);
    }
    
    if(pid1==0){
        printf(“I am Child process %d\nMy father is %d\nI will execute command ‘ls -a‘ later\n“ getpid() getppid());
        printf(“\n“);
        pause();
        printf(“%d child will Running: \n“ getpid());
        for(i=0; arg1[i]!=NULL; i++) printf(“%s“ arg1[i]);
        printf(“\n“);
        status1=execve(arg1[0] arg1 NULL);
    }
    else{
        sleep(1);
        pid2=fork();
        if(pid2==0){
            printf(“I am Child process %d\nMy father is %d\nI will execute command ‘ps -l‘ later\n“ getpid() getppid());
            printf(“\n“);
            pause();
            printf(“%d child will Running: \n“ getpid());
            for(i=0; arg2[i]!=NULL; i++) printf(“%s“ arg2[i]);
            printf(“\n“);
            printf(“\n“);
            status2=execve(arg2[0] arg2 NULL);
        }
        else{
            sleep(1);
            printf(“\nI am Parent process %d\n“ getpid());
            if(kill(pid2SIGINT)>=0)
                printf(“\n%d wakeup %d child.\n“ getpid() pid2);
            printf(“%d wait for child done.\n“ getpid());
            waitpid(pid2 &status1 0);
            printf(“%d child process done.\n“ pid2);
            if(kill(pid1SIGINT)>=0)
                printf(“\n%d wakeup %d child.\n“ getpid() pid1);
            printf(“%d wait for child done.\n“ getpid());
            waitpid(pid1 &status1 0);
            printf(“%d child process done.\n“ pid1);
            printf(“\nParent process done\n“);
        }
    }
    return EXIT_SUCCESS;
}

        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       14984  2018-05-26 10:15  exp1
     文件        1984  2018-07-14 17:24  exp1.c
     文件         247  2018-06-05 13:02  exp1.h
     文件        7416  2018-05-26 10:15  exp1.o
     文件         182  2018-05-26 09:55  Makefile

评论

共有 条评论