Объем данных в канале
Нужно открыть канал, выделить буфер, считать данные, закрыть канал. Обычный подход на основе ftell, fseek с каналом не работает: функции возвращают ошибку.
Как узнать объем данных, которые есть в канале (pipe)?
Источник: Stack Overflow на русском