以下是代码:
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;
}
这是一段代码,其中父进程向管道写入数据,子进程从管道读取数据。我的问题是:对于两个close语句,它们到底关闭了什么?父进程和子进程应该共享同一个文件,即fd [0]和fd [1]。如果在父进程中关闭了fd [0],那么子进程中也应该关闭它吗?
fd
都是管道的一个端口。 - Jonathon Reinhart