Системное программирование в UNIX средствами Free Pascal


Описание


uses stdio;

procedure setbuf(stream:pfile; buf1:pchar);

 

function setvbuf(stream:pfile; buf1:pchar; _type:longint; size:longint):

         integer;

Эти процедуры позволяют программисту в некоторой степени управлять буферами потоков. Они должны использоваться после открытия файла, но до первых операций чтения или записи.

Процедура setbuf подставляет буфер buf1 вместо буфера, выделяемого стандартной библиотекой ввода/вывода. Размер сегмента памяти, на который указывает параметр buf1, должен быть равен константе BUFSIZ, определенной в файле stdio.

Процедура setvbuf позволяет осуществлять более тонкое управление буферизацией, чем процедура setbuf. Параметр buf2 задает адрес нового буфера, а параметр size – его размер. Если вместо адреса буфера передается значение nil, то используется буферизация по умолчанию. Параметр _type в процедуре setvbuf определяет метод буферизации потока stream. Он позволяет настроить поток для использования с конкретным типом устройства, например, для дисковых файлов или терминальных устройств. Возможны три значения _type, они определены в файле stdio:

_IOFBF

Поток файла буферизуется полностью. Этот режим включен по умолчанию для всех потоков ввода/вывода, не связанных с терминалом. Данные при этом будут записываться или считываться блоками размером BUFSIZ байтов для обеспечения максимальной эффективности

_IOLBF

Вывод буферизируется построчно, и буфер сбрасывается при записи символа перевода строки. Он также очищает буфер вывода при его заполнении или при поступлении запроса на ввод. Этот режим включен по умолчанию для терминалов и служит для поддержки интерактивного использования

_IOBNF

Ввод и вывод не буферизуются. В этом случае параметры buf2 и size игнорируются. Этот режим иногда необходим, например, для записи диагностических сообщений в файл протокола

Обратите внимание, что при задании недопустимого значения любого из параметров type или size процедура setvbuf возвращает ненулевое значение. В случае успеха возвращается 0.




- Начало -  - Назад -  - Вперед -



Книжный магазин