fork的应用:
#include "stdio.h" #include "string.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #define Max(a,b) ({int a1=a,b1=b; a1>b1?a1:b1;}) int main() { int i,j,k,*q; char *p="abc"; int pids[10]; int pid; q=pids; //printf("%d \n", getpid()); //sleep (3); for(i=0;i<3;i++) { printf("for-%d\n",i); pid=fork(); if(pid) { *(q++) = pid; }else if(pid == 0){ sleep(5); printf("child:%d \n", getpid()); break; } } if(pid>0) { for(i=0;i<3;i++) { // waitpid(pids[i], NULL, 0); printf("parent: %d, %d \n", getpid(),pids[i]); } } printf("song \n"); }
没有waitpid时输出:
有waitpid时:
时间: 2024-10-11 17:52:24