Функция Запись абсолютных секторов на диск.
Синтаксис #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.
Смотрите также absreadbiosdisk
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.
Смотрите также chmodfstatstat
Пример:
#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: Нет