linux下多任务简单实现
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
#include <sys/wait.h>
void start_routine();
void signal_handler(int signo){
if(signo==SIGCHLD){
pid_t pid;
while((pid=waitpid(-1,NULL,WNOHANG))>0){
}
}
}
int main(){
signal(SIGCHLD,signal_handler);
int i;
pid_t pid;
for(i=0;i<3;i++){
pid=fork();
if(pid==0){
start_routine();
return 2;
}
}
while(1);
return 1;
}
void start_routine(){
printf("-- %d <-- %d --\n",getpid(),getppid());
return;
}