Описание функций Си

       

Creat



     creat

Функция Создает новый файл или перезаписывает существующий.

Синтаксис #include

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.

Смотрите также , переменная),

Пример:

#include

#include

#include

#include

int main(void) { int handle; char buf[11] = "0123456789";

/* изменить режим с текстового в двоичный */ _fmode = O_BINARY; /* создать двоичный файл для чтения и записи */ handle = creat("DUMMY.FIL",S_IREAD|S_IWRITE); /* записать в файл 10 байт */ write(handle,buf,strlen(buf)); /* закрыть файл */ close(handle); return 0; }



Содержание раздела