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)); }