Функция Создает новый файл или перезаписывает существующий.
Синтаксис #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.
Смотрите также chmodchsizeclose_creatcreatnewcreattempdupdup, _fmodeпеременная), fopenopensopenwrite
Пример:
#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;
}