Чтение онлайн

на главную - закладки

Жанры

Язык программирования Си для персонального компьютера

Субботин Д. М.

Шрифт:

Функции realloc и _expand изменяют размер полученного блока.

Функция free (для calloc, malloc и realloc), функция ffree (для _fmalloc), функция _nfree (для _nmalloc) и функция hfree (для halloc) освобождают память, которая была выделена ранее, и делают ее доступной для последующего распределения.

Функции _freect и _memavl определяют: сколько памяти доступно для динамического выделения в заданном сегменте; _freect возвращает примерное число областей заданного размера, которые могут быть выделены; _memavl возвращает общее число байтов, доступных для выделения.

Функции _msize (для calloc, malloc, realloc и _expand), _fmsize (для _fmalloc) и _nmsize (для _nmalloc) возвращают размер ранее выделенного блока памяти.

Функция sbrk — это функция нижнего уровня для получения памяти. Вообще говоря, программа, которая использует функцию sbrk, не должна использовать другие функции выделения памяти, хотя их использование не запрещено.

Все

выше описанные функции распределяли области памяти из общей памяти. Система программирования MSC предоставляет 2 функции, alloca и stackavail, для выделения памяти из стека и определения количества доступной памяти в стеке.

Использование системных вызовов операционной системы MS-DOS

Функция Краткое описание
bdos вызов системы MS-DOS; используются только регистры DX и AL
dosexterr получение значений регистров из системы MS-DOS вызовом 59H
FP_OFF возвращает смещение far-указателя
FP_SEG возвращает сегмент far-указателя
int86 вызов прерывания MS-DOS
int86x вызов прерывания MS-DOS
intdos системный вызов MS-DOS
intdosx системный вызов MS-DOS
segread возвращает текущее значение сегментных регистров

Прототипы функций и макроопределения содержатся в файле dos.h.

Система программирования MSC предоставляет дополнительно функции:

Функция Краткое описание
inp чтение с указанного порта в/в
outp вывод в указанный порт в/в

Прототипы функций inp и outp содержатся в файле conio.h.

Система программирования ТС предоставляет дополнительно следующие функции:

Функция Краткое описание
absread чтение с диска по номеру сектора
abswrite запись на диск по номеру сектора
bdosptr вызов системы MS-DOS
country определение способа записи времени в данной стране
ctrlbrk установить реакцию на <CTRL/BREAK>
disable отменить прерывания
enable разрешить прерывания
freemem освободить память
getinterrupt возбудить прерывание
getcbrk узнать установленную реакцию на <CTRL/BREAK>
getdfree узнать объем свободного места на диске
getdta узнать адрес области передачи данных диска
getfat получить информацию из таблицы размещения файлов
getfatd получить информацию из таблицы размещения файлов
getpsp получить сегментный префикс для текущего программного адреса текущего выполняемого процесса
getvect узнать значение вектора прерывания
getverify узнать режим проверки записи на диск
harderr регистрация функции обработки аппаратных ошибок
hardresume возврат из функции обработки аппаратных ошибок
hardretn возврат из функции обработки аппаратных ошибок
inport ввести слово из порта
inportb ввести байт из порта
intr аналог функции int86
keep зафиксировать программу в памяти
MK_FP составить far-указатель из компонент
outport вывести слово в порт
outportb вывести байт в порт
parsfnm выделение имени файла из командной строки MS-DOS
peek получить значение слова по адресу
peekb получить значение байта по адресу
poke записать слово в память по адресу
pokeb записать байт в память по адресу
randbrd чтение с диска
randbwr запись на диск
setdta установить адрес области передачи данных диска
setvect задать
значение вектора прерывания
setverify включить режим проверки записи на диск
sleep задержка
unlink удаление файла

Прототипы функций и макроопределения содержатся в файле dos.h.

Система программирования ТС предоставляет также следующие функции для обращения к BIOS (базовой подсистеме ввода/вывода операционной системы):

Функция Краткое описание
bioscom управление последовательным каналом
biosdisk управление диском
biosequip узнать конфигурацию аппаратуры
bioskey управление клавиатурой
biosmemory узнать объем оперативной памяти
biosprint управление устройством печати
biostime управление BIOS-таймером

Прототипы функций обращения к BIOS содержатся в файле bios.h.

Управление процессами

Функция Краткое описание
abort завершить процесс
execl выполнить порождаемый процесс со списком аргументов
execle выполнить порождаемый процесс со списком аргументов и заданным окружением (контекстом имен командного языка операционной системы)
execlp выполнить порождаемый процесс, используя переменную PATH и список аргументов
execlpe выполнить порождаемый процесс, используя переменную PATH, заданное окружение и список аргументов
execv выполнить порождаемый процесс с массивом аргументов
execve выполнить порождаемый процесс с массивом аргументов и заданным окружением
execvp выполнить порождаемый процесс, используя переменную PATH и массив аргументов
execvpe выполнить порождаемый процесс, используя переменную PATH, заданное окружение и массив аргументов
exit завершить процесс
_exit завершить процесс без скидывания буферов
signal управление сигналом прерывания
spawnl выполнить порождаемый процесс со списком аргументов
spawnle выполнить порождаемый процесс со списком аргументов и заданным окружением
spawnlp выполнить порождаемый процесс, используя переменную PATH и список аргументов
spawnlpe выполнить порождаемый процесс, используя переменную PATH, заданное окружение и список аргументов
spawnv выполнить порождаемый процесс с массивом аргументов
spawnve выполнить порождаемый процесс с массивом аргументов и задан ным окружением
spawnvp выполнить порождаемый процесс, используя переменную PATH и массив аргументов
spawnvpe выполнить порождаемый процесс, используя переменную PATH, заданное окружение и массив аргументов
system выполнение команды MS-DOS

Система программирования MSC предоставляет дополнительно функции:

Функция Краткое описание
getpid получить номер процесса
onexit выполнить функцию при завершении программы

Термин "процесс" относится к программе, которая выполняется под управлением операционной системы. Процесс состоит из кодов программы и данных, а также информации о состоянии процесса, такой, как число открытых файлов. Где бы ни выполнялась программа на уровне MS-DOS, запускается процесс. Можно запустить, остановить и управлять процессом из программы, используя функции управления процессом. Прототипы всех функций управления процессами объявлены в файле process.h (исключая функцию signal). Прототип функции signal содержится в файле signal.h. Функции управления процессом позволяют следующее:

1) Узнать уникальный номер процесса (getpid).

2) Завершить процесс (abort, exit, _exit).

3) Управлять сигналами прерывания (signal).

4) Начать новый процесс (разновидности ехес и spawn функции, system функция).

Функции abort и _exit осуществляют немедленное завершение без скидывания буферов потоков, функция exit осуществляет выход после скидывания буферов потоков. Функция system вызывает на выполнение заданную команду MS-DOS. Функции ехес и spawn создают новый процесс, называемый порождаемым процессом. Разница между функциями ехес и spawn в том, что spawn способна возвращать управление из порождаемого процесса к его родителю. Оба, и родитель, и порождаемый процесс, размещаются в памяти (если не указан флаг P_OVERLAY).

Поделиться:
Популярные книги

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит