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