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