我在理解pipe
和fork
时遇到了麻烦,至少在实践中难以实现。我想创建n
个孩子,每个孩子都有自己的管道。
我想做类似的事情:
int main(void) {
int fd[2];
for (int i = 0; i < n; i++) {
pipe(fd);
r = fork();
if (r == 0) {
// do child stuff
} else if (r > 0) {
// do parent stuff
}
}
}
但是这样做会导致孩子自己制作自己的程序,这不是我想要的。
此外,您将如何使父子进程同时运行,在此子进程不断地向管道中写入数据的情况下,父级(可以访问每个子管道)对其进行读取,处理,然后丢弃它,以便孩子可以向管道中写入新内容?