Получение данных неопределённого размера
Есть процесс, который считывает данные из канала. Данные эти имеют неопределённую длину (результат выплнения команды ls -al). Как на Ваш взгляд лучше всего их принять (ф-цией read) при условии того, что в итоге нужно получить строку? Лично у меня есть следующая идея: посимвольно считывать данные и помещать их в контейнер, после чего выделить необходимое кол-во памяти и перебросить содержимое контейнера в строку. Смущает только то, что выглядит эта идея как-то коряво... :)
read( STDIN_FILENO, &buffer, sizeof( buffer ) );
if( strlen( data ) >= buffer_size - 1 )
pointer = realloc( (void*)data, buffer_size * memoryAllocationParameter++ );
strcat( data, &buffer );