Ниже приводится общийpipe()
использование Пример:Необходимо ли закрывать противоположные концы трубы в родительском и дочернем?
int fd[2];
pipe(fd);
if((childpid = fork()) == -1)
{
perror("fork");
exit(1);
}
if(childpid == 0)
{
/* Child process closes up input side of pipe */
close(fd[0]);
////.....some code....////
exit(0);
}
else
{
/* Parent process closes up output side of pipe */
close(fd[1]);
////.....some code....////
}
То, что я хочу знать, что нужно ли вызовclose(fd[0])
у ребенка и close(fd[1])
в родительском процессе .
Что произойдет, если я неclose()
их и использовать только fd[1]
в ребенке и fd[0]
в родителе.
Закрыто ли это только для того, чтобы мы случайно ничего не делали с этими дескрипторами?