⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waitpid1.c

📁 嵌入式Linux程序设计与应用案例 电子书源码 中国电力出版社
💻 C
字号:
/***************//  name : waitpid1.c//  author : pyy//  date : 2007-11-22************/#include<unistd.h>#include<stdio.h>#include<stdlib.h>#include<sys/wait.h>#include<sys/types.h>void disp0();void disp1();void disp2();int mymax(int ,int );int main(){    pid_t child;    int status,ans;    void (*fun[3])();    int (*pm)(int x, int y);    int num1,num2,num3,max_num;    fun[0] = disp0;    fun[1] = disp1;    fun[2] = disp2;       pm = mymax;    printf("copy ? yes or no: 1: yes 2: no ");     scanf("%d", &ans);    if (ans ==1 )    {        child = fork(); //copy process        if(child == -1)        {            perror("fork error"); exit(1);        }    }     /* child process*/    if( child == 0)     {        puts("this is child process ... ");        printf("\t child process pid = %d\n",getpid());        printf("\t child process ppid =%d\n",getppid());        printf("which one do you want? (0: computer 1 : tv 2 : video$)");        scanf("%d",&num3);        if(num3 >=0 && num3<=2) (*fun[num3])();          exit(0);    }    else     {        waitpid(child,&status,0);        puts("This is father process ....");	printf("\t father pid =%d \n",getpid());        printf("\t father ppid=%d \n",getppid());        printf("\t child go :%d\n",WIFEXITED(status));        printf("input first num: ");        scanf("%d",&num1);        printf("input second num: ");        scanf("%d",&num2);        max_num=(*pm)(num1,num2);        printf("max is %d\n",max_num);        exit(0);    }   }int mymax(int x, int y){    if(x > y) return x; else return y;}void disp0(){    printf(" you want computer.\n");}void disp1(){    printf(" you want TV.\n");}void disp2(){    printf(" you want video$.\n");}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -