CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
creat
creat
Функция Создает новый файл или перезаписывает существующий. Синтаксис #include <sys\stat.h> int creat(const char * path, int amode); Файл, содержащий io.h прототип Описание Функция creat создает новый файл или подготавливает для перезаписи существующий файл, имя которого находится в аргументе path. amode применяется только для заново создаваемых файлов. Файл создается в режиме, указываемом в глобальной переменной _fmode (O_TEXT или O_BINARY). Если файл уже существует и установлен атрибут записи, функция creat усекает файл до длины 0 байт, оставляя неизменными атрибуты файлов. Если существующий файл имеет атрибут "только чтение", вызов функции creat потерпит неудачу и файл останется неизменным. Вызов функции creat проверяет только бит S_IWRITE в слове режима доступа amode. Если данный бит равен 1, файл имеет разрешение на запись. Если бит равен 0, то для файла разрешено только чтение. Все остальные атрибуты DOS устанавливаются равными нулю. amode может принимать одно из следующих значений (определенных в файле sys\stat.h): --------------------------------------------------- Значение amode Режим доступа --------------------------------------------------- S_IWRITE Разрешение на запись. S_IREAD Разрешение на чтение. S_IREAD|S_IWRITE Разрешение на чтение и запись. --------------------------------------------------- Примечание. В DOS разрешение на запись влечет за собой разрешение на чтение. Возвращаемое При успешном завершении возвращается неотрицатель- значение ное целое число - новый дескриптор файла; иначе возвращается значение -1. В случае ошибки errno принимает одно из следующих значений: ENOENT - Маршрут или имя файла не найдены. EMFILE - Слишком много открытых файлов. EACCES - Отказ доступа. Переносимость creat поддерживается в системах UNIX. Смотрите также chmod, chsize, close, _creat, creatnew, creattemp, dup, dup2, _fmode(переменная), fopen, open, sopen, write. Пример: #include<sys\stat.h> #include<process.h> #include<string.h> #include<stdio.h> #include<fcntl.h> #include<errno.h> #include<io.h> int main(void) { int handle; char buf[] = "0123456789"; /* создать файл для чтения и записи в двоичном режиме */ if((handle = _creat("DUMMY.FIL",0)) < 0) { switch(errno) { case ENOENT: printf("Ошибка:Маршрут или имя файла не найдены.\n"); break; case EMFILE: printf("Ошибка:Слишком много открытых файлов.\n"); break; case EACCES: printf("Ошибка: Отказ доступа\n"); break; default: printf("Ошибка при создании файла\n"); break; } exit(1); } /* записать в файл строку с завершающим нулевым символом */ write(handle,buf,strlen(buf)+1); /* закрыть файл */ close(handle); return 0; }