Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Получение данных неопределённого размера

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