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