Описание функций Си

Abswrite



     abswrite

Функция Запись абсолютных секторов на диск.

Синтаксис #include

int abswrite(int drive, int nsects, int lsect, void * buffer);

Файл, содержащий dos.h прототип

Описание abswrite записывает заданные сектора диска. Функ- ция игнорирует логическую структуру диска и не об- ращает внимание на файлы, блоки FAT или директо- рии.

Примечание. При неверном использовании abswrite может перезаписать файлы, директории или блоки FAT.

аbswrite произвадит запись секторов диска посредс- твом прерывания DOS 0x26.

drive = номер диска, на который производится за- пись (0=А, 1=В, и т.д.) nsects = количество записываемых секторов lsect = начальный логический номер сектора buffer = адрес памяти, откуда ,берутся данные.

Количество записываемых секторов ограничено суммар- ным размером сегмента памяти, расположенного выше адреса buffer. Таким образом, 64К - максимальный размер области памяти, который может быть обработан за один вызов функции abswrite.

Возвращаемое При успешном завершении abswrite возвращает 0. значение При возникновении ошибки, функция возвращает значение -1 и присваивает переменной errno значе- ние регистра AX, получаемое при системном вызове. Более детальную информацию об еrrno смотрите в документации по DOS.

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

Смотрите также EW1accessFW0



Функция Определяет возможность доступа к файлу.

Синтаксис #include

int access(const char * filename, int amode);

Файл, содержащий io.h прототип

Описание access проверяет файл c именем filename для определения, существует ли он, может ли он быть прочитан, записан или выполнен.

Список значений параметра amode: 06 проверка разрешения на чтение и запись; 04 проверка разрешения на чтение; 02 проверка разрешения на запись; 01 проверка на выполнение (игнорируется); 00 проверка на существование файла;

Примечание. Под управлением операционной системы DOS все существующие файлы имеют доступ на чтение (amode равен 04), поэтому 00 и 04 дают один и тот же результат. Аналогично, значения 06 и 02 эквивалентны, так как в DOS доступ на запись подразумевает и доступ на чтение.


Если параметр filename является ссылкой на дирек- торию, функция access просто проверяет, существует данная директория или нет.

Возвращаемое Если требуемый способ доступа разрешен, access значение возвращает значение 0, иначе возвращается значение -1 и переменная errno получает одно из следующих значений:

ENOENT - Маршрут или имя файла не найдены EACCES - Отказ доступа.

Переносимость Поддерживается на системах UNIX.

Смотрите также

Пример:

#include

#include

int file_exists(char * filename);

int main(void) { printf("Существует ли файл NOTEXIST.FIL: %s\n", file_exists("NOTEXIST.FIL") ? "Да":"Нет"); }

int file_exists(char * filename) { return (access(filename, 0) == 0); }

Результат: Существует ли файл NOTEXIST.FIL: Нет


Содержание раздела