【发布时间】:2014-03-28 17:37:00
【问题描述】:
代码如下:
int main() {
int fd[2];
pipe(fd);
int r = fork();
if (r > 0) { //parent
close(fd[0]);
// do a bunch of things
} else { //child
close(fd[1]);
// do a bunch of things
return 0;
}
这是一段代码,父级写入管道,子级从管道读取。我的问题是:对于两个关闭语句,它们到底是什么关闭?父母和孩子应该共享同一个文件,即 fd[0] 和 fd[1]。如果 fd[0] 在 parent 中关闭,它不应该在 child 中也关闭吗?
【问题讨论】:
-
每个
fd都是管道的一端。