假设我们有来自同一父级的N个子进程。有没有办法,根据有多少个子进程,创建多个管道而不使用多个声明?
避免这样的事情:
int fd[2];
pipe(fd);
int fd2[2];
pipe(fd2);
int fd3[2];
pipe(fd3);
提前多多感谢。
答案 0 :(得分:2)
创建一个动态大小的数组,然后为每个子进程调用pipe()
一次。
int *fds = malloc(2*n * sizeof *fds);
for (int i = 0; i < n; ++i) {
pipe(&fds[i * 2]);
}