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