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

Absread

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

НазначениеНепосредственный доступ к данным.

Синтаксис int absread (int drive, int nsects, int

sectno, void *buffer);

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

Замечанияabsread читает заданные секторы диска.

Она игнорирует логическую структуру диска и не

обращает внимания на файлы, таблицы размещения

файлов (FAT) и каталоги.

absread читает заданные секторы диска с помощью

прерывания DOS 0х25.

drive = номер дисковода (0=А,1=В...)

nsects = количество секторов для записи

sectno = начальный номер логического сектора

buffer = адрес памяти, куда будут считываться

данные с диска.

Число считываемых секторов ограничено памятью

сегмента buffer. Таким образом 64К - наибольшая

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

вызов absread.

ВозвращаемоеПри успешном завершении функция возвращает 0.

значениеПри ошибке функция возвращает -1 и устанавлива-

ет errno в значение, равное AX, которое возвра-

щается системным вызовом. Описание errno смот-

рите в документации по MS-DOS.

ПереносимостьУникальна для MS-DOS.

Смотри также absWrite, biosdisk

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

Abswrite

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

Назначение Запись данных.

Синтаксис int abswrite (int drive,int nsects,int sectno,

void *buffer)

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

Замечанияabswrite записывает данные в указанные секторы

диска. Она игнорирует логическую структуру дис-

ка и не обращает внимания на файлы, таблицы

размещения файлов (FAT) и каталоги.

Замечание: в случае некорректного использования

данной функции информация в существующих фай-

лах, оглавлениях и каталогах может быть испор-

чена.

abswrite записывает заданные секторы с помощью

прерывания DOS 0х26.

drive = номер дисковода (0=А,1=В...)

nsects = количество записываемых секторов

sectno = начальный номер логического сектора

buffer = адрес памяти, куда будут записывать-

ся данные с диска.

Число считываемых секторов ограничено памятью

сегмента buffer. Таким образом 64К - наибольшая

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

вызов abswrite.

ВозвращаемоеПри успешном завершении функция возвращает 0.

значениеПри ошибке функция возвращает -1 и устанавлива-

ет errno в значение, равное AX, которое возвра-

щается системным вызовом. Описание errno смот-

рите в документации по MS-DOS.

ПереносимостьУникальна для MS-DOS.

Смотри также absread, biosdisk

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

access

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

Назначение Определяет доступнорсть файла.

Синтаксис int access(const char*filename,int amode);

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

Замечанияaccess выполняет проверку на наличие файла, оп-

ределенного строкой filename и определяет пол-

номочия по доступу к нему (чтение, запись, вы-

полнение).

Параметр amode может принимать значения:

06 контроль разрешения чтения/записи

04 контроль разрешения чтения

02 контроль разрешения записи

01 выполнение (игнорируется)

00 контроль существования файла

Замечание: в среде MS-DOS, все существующие

файлы считаются доступными для чтения

(amode=04), поэтому обращение к access со зна-

чением amode 00 и 04 дают одинаковый результат.

По той же причине значение amode 02 эквивалент-

но 06, т.к., в среде MS-DOS, доступность файла

для записи подразумевает доступность его и для

чтения.

Если значением filename является имя каталога,

то функция access просто определяет имеется ли

каталог с таким именем или нет.

ВозвращаемоеЕсли доступ разрешен, то возвращается 0, в

значениепротивном случае возвращается -1 и errno уста-

навливается в одно из следующих состояний:

ENOENT Маршрут или имя файла не найдено

EACCES Доступ запрещен.

ПереносимостьДоступна в UNIX.

Смотри такжеchmod, fstat, stat

Пример

#include<stdio.h>

#include<io.h>

/* возвращает 1 если filename существует, иначе 0 */

int file_exists(char *filename)

{

return (access(filename, 0) == 0);

}

main()

{

printf("Есть доступ к NOTEXIST.FIL : %s\n",

file_exists("NOTEXIST.FIL") ? "ДА" : "НЕТ");

}

Результаты работы программы:

Есть доступ к NOTEXITS.FIL : НЕТ

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

acos

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

НазначениеВычисление арккосинуса.

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

double acos(double x);

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

ЗамечанияФункция возвращает арккосинус входного

параметра. Аргумент функции должен иметь значе-

ние в диапазоне от -1 до 1. Если аргумент выхо-

дит за указанные границы, функция acos возвра-

щает значение 0 и устанавливает значение

переменной errno, в

EDOM аргумент не входит в область

определения функции.

Возвращаемоеacos возврашает значение в диапазоне от 0 до

значениеpi.

Обработчик ошибок для этой функции может быть

модифицирован с помощью функции matherr.

ПереносимостьФункция доступна в системах типа UNIX и совмес-

тима с ANSI Си.

Смотри также asin, atan, atan2, cos, cosh, matherr, sin,

sinh, tan, tanh

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