CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
_creat
_creat
Функция Создает новый файл или перезаписывает существующий. Синтаксис #include <dos.h> int _creat(const char * path, int attrib); Файл, содержащий io.h прототип Описание _creat берет аргумент attrib - слово атрибутов DOS. Файл всегда открывается в двоичном режиме. При успешном создании файла указатель файла устанавливается на начало этого файла. Файл открывается сразу для чтения и записи. Если файл уже существует, то его размер устанавливается равным 0. (Это эквивалентно удалению файла и созданию нового файла с этим же именем). Аргумент attrib в _creat может быть одной из следующих констант (определенных в dos.h): FA_DRONLY Только чтение. FA_HIDDEN Скрытый файл. FA_SYSTEM Системный файл. Возвращаемое При успешном завершении _creat возвращает дескрип- значение тор нового файла, неотрицательное число; иначе воз- вращается -1. В случае ошибки errno принимает одно из следующих значений: ENOENT - Маршрут или имя файла не найдены. EMFILE - Слишком много открытых файлов. EACCES - Отказ доступа. Переносимость _creat уникальна для DOS. Смотрите также _chmod, chsize, _close, close, creat, creatnew, creattemp. Пример: #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; }