CodeNet / Языки программирования / C / C++ / Linux/Unix / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник С/C++ для UNIX - Список функций
creat
CREAT
#include <sys\types.h>
#include <sys\stat.h>
#include <io.h> требуется только для объявления
функций.
int creat(pathname, pmode);
char *pathname; path-имя нового файла
int pmode; разрешенный режим доступа
Описание.
Функция creat либо создает новый файл, либо открывает и об-
новляет (усекает до длины 0) существующий файл. Если существует
файл, определяемый path-именем, то создается новый файл с задан-
ным режимом доступа и являющийся открытым для записи. Если файл
существует и его режим доступа позволяет запись, тогда функция
creat усекает файл к длине 0, уничтожая все содержимое, и однов-
ременно открывает файл.
Разрешенный режим доступа - pmode - применяется только для
вновь созданных файлов. Новый файл получает установленный режим
доступа после первого его закрытия. Целое выражение pmode состоит
из одной или нескольких манифестных констант - S_IWRITE и
S_IREAD, объявленных в <sys\stat.h>. Если задаются обе константы,
они объединяются при помощи логического OR (:). Значение аргумен-
та pmode приводится ниже.
КОНСТАНТА СМЫСЛОВОЕ ЗНАЧЕНИЕ
S_IWRITE разрешает запись
S_IREAD разрешает чтение
S_IREAD:S_IWRITE разрешают чтение и запись
Если запись не разрешена, файл предназначен только для чте-
ния. В MS DOS нельзя разрешить только запись. Поэтому режимы
S_IWRITE и S_IREAD: S_IWRITE являются эквивалентными.
В версиях MS DOS 3.0 и старших файлы, открываемые при помо-
щи creat, всегда открываются в совмещенном режиме (compatibility
mode).
Функция creat перед установкой флага доступа присваивает
pmode маске доступа (подробно об этом смотрите umask).
Возвращаемое значение.
В случае успешного вызова эта функция возвращает handle на
созданный файл. Возвращаемое значение -1 свидетельствует об ошиб-
ке; errno устанавливается в одно из следующих значений:
ВОЗВРАЩАЕМАЯ СМЫСЛОВОЕ ЗНАЧЕНИЕ
ВЕЛИЧИНА
EACCES Path-имя определяет существующий
файл только для чтения или
определяет директорий вместо файла
EMFILE другие handle-ры файла не пригодны,
т.к. много открытых файлов
ENOENT path-имя не найдено.
См. также chmod, chsize, close, dup, dup2, open, sopen,
umask.
Замечание. Процедура create обеспечивает первоначальную
совместимость с предыдущими библиотеками. Вызов open при помощи
значений O_CREAT и O_TRUNC, определенных в аргументе oflag, явля-
ется зквивалентным и предпочтительным для нового кода.
Пример:
#include <sys\types.h>
#include <sys\stat.h>
#include <io.h>
#include <stdlib.h>
int fh;
fh = creat("data", S_IREAD|S_IWRITE);
if (fh == -1)
perror("Couldn't create data file");.
