Объем данных в канале

Рейтинг: 0Ответов: 1Опубликовано: 22.04.2011

Нужно открыть канал, выделить буфер, считать данные, закрыть канал. Обычный подход на основе ftell, fseek с каналом не работает: функции возвращают ошибку.

Как узнать объем данных, которые есть в канале (pipe)?

Ответы

▲ 3Принят

В общем случае, единственный надежный переносимый способ узнать сколько данных в канале - это считать эти данные из канала.

Можно читать частями, в заранее выделенный небольшой буфер. Сколько реально будет считано, столько и есть данных в канале. Если памяти будет не хватать, то довыделять по необходимости.