CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
chmod
chmod
Функция Изменяет режим доступа к файлу.
Синтаксис #include <sys\stat.h>
int chmod(const char * path, int amode);
Файл, содержащий io.h
прототип
Описание Функция chmod уставливает режим доступа к файлу,
заданному аргументом path в соответствии с маской,
содержащейся в аргументе amode. Аргумент path
указывает на символьную строку; *path является
первым сиволом этой строки.
amode может содержать одну или обе символьные
константы S_IWRITE и S_IREAD (определенные в файле
sys\stat.h).
---------------------------------------------------
Значение, amode Режим доступа
---------------------------------------------------
S_IWRITE Разрешение на запись.
S_IREAD Разрешение на чтение.
S_IREAD|S_IWRITE Разрешение на чтение и запись.
---------------------------------------------------
Возвращаемое При успешном завершении изменения режима доступа к
значение файлу функция chmod возвращает значение 0. Иначе,
chmod возврашает значение -1.
В случае ошибки errno присваивается одно из
следующих значений:
ENOENT - Маршрут или имя файла не найдены.
EACCES Отказ доступа.
Переносимость Функция chmod поддерживается на системах UNIX.
Смотрите также access, _chmod, fstat, open, sopen, stat.
Пример:
#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));
}
