>Спасибо, правда не совсем понимаю криминал использования ссылки, а не указателя. Вы
>не могли бы пояснить? криминал? ммм... почитай Алена Голуба, там очень хорошо все расписано. самый главный недостаток, это сюрприз который сразу невидно. для читающего(или сопровождающего) твой код программиста это будет головной болью.
область применения ссылок это конструкторы классов, переопределения операторов, во всех остальных случаях лучше использовать указатель.
>[оверквотинг удален]
>
>Проблема в том что если я открываю поток вначале на чтение например
>в одной функции и после отработки закрываю, а потом пытаюсь открыть
>его на запись в другой функции то указатель на потом имеет
>значение NULL. А вот если я открываю сразу два потока на
>сокет один на чтение а другой на запись то всё работает
>нормально.
>
>Почему я не могу открыть поток на сокет, потом закрыть, а потом
>открыть снова уже другой поток?
"секрет" в функции fclose: will flush the stream pointed to by fp (writing any buffered output data using fflush(3)) and close the underlying file descriptor
если хочешь так делать, сделай от открытого дескриптора dup, и уже к нему(новому дескриптору) применяй fdopen.