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: Нет