Справочник по функциям С++. Подпрограммы классификации Подпрограммы преобразования
Скачать 3.41 Mb.
|
_fmode----------------------------------------------------------------- Назначение Определяет режим обработки файла по умолчанию. Синтаксис extern unsigned _fmode; Объявлена в fcntl.h Замечания _fmode определяет, с каким признаком (текстовый или двоичный) файл будет открыт и обработан. По умолчанию значение _fmode есть O_TEXT, означающее, что файл будет прочитан как текстовый. Если значение _fmode есть O_BINARY, файл будет открыт и прочитан как двоичный (значения O_TEXT и O_BINARY определены в fcntl.h). В текстовом виде при вводе комбинация символов CR/LF (возврат каретки/перевод строки) преобразуется в один символ перевода строки (LF). При выводе из файла осуществляется обратное действие: символы LF преобразуются в комбинации CR/LF. В двоичном виде такое преобразование не производится. Вы можете изменить установленный по умолчанию тип файла, задавая для _fmode значение t (текстовый) или b (двоичный) с помощью аргумента type в библиотечных подпрограммах fopen, fdopen и freopen. В подпрограмме open имеется также аргумент access, который может принимать как значение O_BINARY, так и значение O_TEXT. С помощью этого аргумента можно явно определять тип открываемого файла (сам файл определяется аргументом pathname подпрограммы open) - текстовый либо двоичный. ----------------------------------------------------------------- _heaplen----------------------------------------------------------------- Назначение Содержит длину "близкой" кучи. Синтаксис extern unsigned _heaplen; Объявлена в dos.h Замечания _heaplen содержит размер "близкой" кучи в малых моделях данных (крохотной, малой и средней). В больших моделях (компактной, большой и максимальной) _heaplen не существует, т.к. в этих моделях нет "близкой" кучи. В малой и средней моделях размер сегмента данных вычисляется следующим образом: сегмент данных[малая, средняя] = глобальные данные + куча + стек, где размер стека может быть установлен благодаря переменной _stklen. Если _heaplen установлена в 0, программа выделяет 64К байт для сегмента данных, и эффективный размер кучи 64К - (глобальные данные + стек) байтов. По умолчанию _heaplen равна нулю, поэтому вы получите 64К для сегмента данных, если сами не укажете значение _heaplen. В крохотной модели все (включая программу) содержится в одном сегменте, поэтому формула для вычисления сегмента данных содержит программу и 256 байтов для PSP (префикса сегмента программы): сегмент данных[крохотная] = 256 + программа + + глобальные данные + куча + стек. Если _heaplen равна 0 в крохотной модели, эффективный размер кучи получается вычитанием PSP, программы, глобальных данных и стека из 64К. В компактной и большой моделях нет "близкой" кучи, поэтому сегмент данных просто равен - сегмент данных[компактная, большая] = глобальные данные + стек. В максимальной модели стек является отдельным сегментом и каждый модуль имеет свой собственный сегмент данных. ----------------------------------------------------------------- _osmajor, _osminor----------------------------------------------------------------- Назначение Содержат главный и дополнительный номера версии DOS. Синтаксис extern unsigned char _osmajor; extern unsigned char _osminor; Обьявлены в dos.h Замечания Главный и дополнительный номера версии DOS доступны по отдельности через переменные _osmajor и _osminor, где _osmajor - главный номер версии, а _osminor - дополнительный. Например, если вы используете DOS версии 3.2, то _osmajor будет равна 3, а _osminor - 20. Эти переменные могут быть использованы, когда вы пожелаете написать программу, которая будет выполнятся под управлением DOS версий 2.x и 3.x. Некоторые библиотечные подпрограммы будут иметь отличительную зависимость от номера версии DOS, другие же работают только под управлением DOS версии 3.x. (См., например, _open, creatnew и ioctl в справочном разделе этого руководства.) ----------------------------------------------------------------- _psp----------------------------------------------------------------- Синтаксис extern unsigned int _psp; Объявлена в stdlib.h Замечания _psp содержит адресный сегмент префикса сегмента программы (PSP) для выполняемой в данный момент программы. PSP является дескриптором процесса в DOS, он содержит начальную информацию DOS о программе (процессе). Для получения более полной информации о PSP обратитесь к "Руководству Программиста MS-DOS" фирмы Microsoft. ----------------------------------------------------------------- |