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

📄 niki_process.c

📁 在POSIX规范中fork和kill系统调用的功能和使用
💻 C
字号:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <ctype.h>

int niki=5;
void create_process();

main()
{      
    int num_childProcess;
    printf("Creat the child processes:");
    scanf("%d",&num_childProcess);
    create(num_childProcess);
}
                                                                                                                                           
void create_process(int childprocess)
{  
    int num_child;
    int m;
    int k_num;
    int process_num;
    int kill_num;

    num_child=childprocess;
    pid_t pid[num_child];
    

    for(m=0;m<num_child;m++)
    {
        pid_t fork();
        if(fork()== -1)
        {
            printf("create failed!");
            exit(0);
        }
        else if(fork()==0)
        {
            process_num=m+1;
            printf("NO. %d child process,  PID: %ld\n",process_num,getpid());
            niki++;
            printf("you want to see the num:\n");
            printf("niki = %d\n",niki);
            while(1)
            {
                sleep(2);
            }
        }
        else
        {
            niki--;
            pid[m]=fork();
            printf("Parent process,   PID:    %ld\n",getpid());
            printf("niki =  %d\n",niki);
        }
    }
        while(1)
        {
            printf("which child process you want to kill?(input 0 exit) \n");
            scanf("%d",&kill_num);
            if(kill_num!=0)
            {
                kill(pid[kill_num-1],SIGTERM);
            }
            else  break;
                                                                                                                                                      
        }
        for(k_num=0;k_num<num_child;k_num++)
        {
            kill(pid[k_num],SIGTERM);
        }
}

⌨️ 快捷键说明

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