Открываю канал, выполняю скажем ls, а потом содержимое в буфер кладу. Как можно узнать размер содержимого, чтобы памяти на буфер выделить? fstat с FILE* не работать :(
это можно сделать в единственном случае - когда протокол обмена с приложением подразумевает передачу размера вывода. Как правило размер идет вначале в заголовке фиксированной длины - сначала читаешь заголовок (заранее известной длины), анализируешь его, понимаешь скоко нуно прочитать и вперед... но такие протоколды как правило используется при работе с сокетами напр, но никак не в шелле...... :-)