Функция Изменяет режим доступа к файлу.
Синтаксис #include
#include
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.
В случае ошибки errno присваивается одно из сле-
дующих значений:
ENOENT - Маршрут или имя файла не найдены
EACCES - Отказ доступа
Переносимость _chmod уникальна для DOS.
Смотрите также chmod_creat
Пример:
#include
#include
#include
#include
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));
}