|
发表于 2003-6-28 12:44:40
|
显示全部楼层
最初由 libinary 发表
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/types.h>
- #define NUM 5
- int main()
- {
- pid_t pid[NUM], cpid;
- int proc_number;
- for(proc_number =[color=red] 1[/color] ; proc_number [color=red]<=[/color] NUM; ++proc_number){
- if((pid[proc_number] = fork()) < 0)
- perror("fork error");
- else if(pid[proc_number] == 0)
- break;
- }
- cpid = getpid();
- if(proc_number < NUM)
- printf("child %d: %d\n", proc_number + 1, cpid);
- else
- printf("parent: %d\n", cpid);
- exit(0);
- }
复制代码
这段代码比我的强!!学习
在for以后,每个子进程的proc_number是不同的,其实不用我的那么麻烦,在这里可以用switch/case了
- switch(proc_number)
- {
- case 1:
- printf("this is 1# child\n");
- break;
- case 2:
- //...
- break;
- ......
- ......
- case NUM:
- printf("this is perent!\n");
- break;
- }
复制代码 |
|