Функция
Изменяет режим доступа к файлу.
Синтаксис
#include <dos.h>
#include <io.h>
int _chmod(const char *path, int func[int attrib]);
Прототип
io.h
Описание
Функция _chmod может изменять или устанавливать атрибуты файлов DOS. Если func равен 0, то функция возвращает текущие атрибуты DOS для данного файла. Если func равен 1, то атрибуты устанавливаются в соответствии с аргументом attrib.
Функция attrib может быть одной из следующих символьных константных значений (определенных в dos.h):
FA_RDONLY - только чтение.
FA_HIDDEN - скрытый файл.
FA_SYSTEM - системный файл.
FA_LABEL - метка тома.
FA_DIREC - каталог.
FA_ARCH - архив.
Возвращаемое значение
При успешном завершении _chmod возвращает слово с атрибутами файла. Иначе, возвращается значение -1.
Переносимость
Уникальна для DOS
Пример
#include<errno.h>
#include<stdio.h>
#include<dos.h>
#include<io.h>
int get_file_attrib(char *filename);
int main(void);
{
char filename[128];
int attrib;
printf("Введите имя файла:");
scanf("%s",filename);
attrib = get_file_attrib(filename);
if(attrib == -1)
switch(errno)
{
case ENOENT:printf("Маршрут или имя файла не найдены\n");
break;
case EACCES:printf("Отказ доступа\n");
break;
default: printf("Ошибка номер %d\n",errno);
break;
}
else
{
if(attrib & FA_RDONLY)
printf("%s имеет атрибут только на чтение\n",filename);
if(attrib & FA_HIDDEN)
printf("%s - cкрытый файл\n",filename);
if(attrib & FA_SYSTEM)
printf("%s - системный файл \n",filename);
if(attrib & FA_LABEL)
printf("%s - метка тома\n",filename);
if(attrib & FA_DIREC)
printf("%s - каталог\n",filename);
if(attrib & FA_ARCH)
printf("%s - архивный файл\n",filename);
}
return 0;
}
int get_file_attrib(char *filename)
{
return(_chmod(filename,0));
}