Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по функциям С++.doc
Скачиваний:
168
Добавлен:
02.05.2014
Размер:
3.57 Mб
Скачать

Setblock

-----------------------------------------------------------------

НазначениеИзменяет размер предварительно распредлеенной

области памяти

Синтаксис int setblock(unsigned segx,unsigned newsize);

Прототип вdos.h

Замечанияsetblock изменяет размер сегмента памяти. segx

содержит адрес сегмента, возвращенный

предыдущим вызовом функции allocmem. newsize

содержит новый, требуемый размер сегмента в

параграфах.

Возвращаемоеsetblock возвращает -1 при успешном завершении.

значениеВ случае ошибки возвращается размер наибольшей

возможной области (в параграфах) и

устанавливается значение _doserrno

Переносимостьsetblock уникальна для DOS.

См. также allocmem

-----------------------------------------------------------------

setbuf

-----------------------------------------------------------------

НазначениеУстанавливает буферизацию потока

Синтаксис #include <stdio.h>

void setbuf(FILE *stream, char *buf);

Прототип вstdio.h

Замечанияsetbuf назначает буфер buf для использования

при буферизации ввода-вывода взамен

автоматически выделяемого буфера. Эту функцию

можно использовать только после открытия

соответствующего потока stream.

Если значением buf является null, то ввод/вывод

будет небуферизованным; в противном случае

ввод/вывод будет полностью буферизован. Буфер

должен иметь размер BUFSIZ байт (определяется в

stdio.h).

stdin и stdout являются небуферизованными

потоками, если их направления не изменялись; в

противном случае они полностью буферизованы.

setbuf можно использовать для изменения вида

буферизации.

Небуферизованный обмен означает, что каждый

записываемый в поток символ немедленно

выводится в файл или на устройство, в то время

как буферизация подразумевает вначале на-

копление блока символов, а затем запись этого

блока целиком в поток.

Вызов setbuf дает непредсказуемый результат,

если он производится не сразу после открытия

потока stream или после обращения к функции

fseek. Вызов setbuf после определения потока

stream как небуферизованного допустим и не

вызывает каких-либо проблем.

Распространенной ошибкой является определение

буфера как автоматической локальной переменной,

а затем попытка закрыть файл перед выходом из

функции, в которой буфер был определен.

ВозвращаемоеНет.

значение

Переносимостьsetbuf доступна в системах UNIX и совместима с

ANSI C.

См. также fflush,fopen,fseek,setvbuf

Пример См. setvbuf

-----------------------------------------------------------------