多进程问题
我想让子进程创建子进程的子进程#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
void main(void){
pid_t childpid;
for(int i = 1; i < 4; i++){
if(childpid = fork())
break;
}
printf("This is process %d, with parent %d, i %d \n", getpid(), getppid(), i);
}
输出的子进程的父进程pid 异常是为什么 您可能会有兴趣了解一下 Linux 进程收养相关的内容,可能与此有一定关联 父进程不等待子进程结束吗?
人造人 发表于 2022-10-5 20:59
父进程不等待子进程结束吗?
这样子应该没问题吧我只是想一系列的创造子进程 {:10_266:} 英俊男孩建坤 发表于 2022-10-5 21:55
这样子应该没问题吧我只是想一系列的创造子进程
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
pid_t childpid;
size_t i;
for(i = 1; i < 4; ++i) {
if((childpid = fork())) break;
sleep(1);
}
//sleep(1);
printf("This is process %d, with parent %d, i %zu \n", getpid(), getppid(), i);
return 0;
}
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
pid_t childpid;
size_t i;
for(i = 1; i < 4; ++i) {
if((childpid = fork())) break;
//sleep(1);
}
sleep(1);
printf("This is process %d, with parent %d, i %zu \n", getpid(), getppid(), i);
return 0;
}
sleep的位置不对,改成下面这样
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void) {
pid_t childpid;
size_t i;
for(i = 1; i < 4; ++i) {
if((childpid = fork())) break;
//sleep(3);
}
printf("This is process %d, with parent %d, i %zu \n", getpid(), getppid(), i);
sleep(1);
return 0;
}
页:
[1]