fork創建進程使用


1.fork創建進程的使用

 fork()返回值等於0時,表示創建子進程;

   fork()返回值大於0時,是主進程;

#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
#include<signal.h>

void sig_handler(int signo)
{
    printf("child process %d stop\n", signo);
    //wait(0);
 
}
void out(int n)
{
    int i = 0;
    for(i = 0; i < n; ++i)
    {
        printf("%d:%d out %d\n", getpid(), i);
        sleep(1);
    }
}
int main(void)
{
    if (signal(SIGCHLD, sig_handler) == SIG_ERR)
    {
        perror("sigchld error");
        exit(1);
    }
    
    pid_t pid = fork();
    if(pid < 0)
    {
        perror("fork error");
        exit(1);
    }
    else if(pid > 0)  //主進程
    {
        out(100);
    }
    else          //子進程
    {
        out(20);
    }
    
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM