mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

CREAT(2)                                               CREAT(2)

НАЗВАНИЕ 
        creat  -  создание нового или опустошение существующего
        файла

СИНТАКСИС 
        int creat (path, mode)
        char *path;
        int mode;

ОПИСАНИЕ 
        Системный вызов creat создает новый  обычный  файл  или
        готовит для перезаписи существующий файл  с  маршрутным
        именем, адрес которого содержит аргумент path.

        Если файл существует, то он опустошается (размер стано-
        вится равным 0), а режим доступа и владелец не  изменя-
        ются. Если файл не существует, то  идентификаторы  вла-
        дельца и группы создаваемого файла устанавливаются рав-
        ными, соответственно, действующим идентификаторам поль-
        зователя и группы процесса, а младшие 12  бит  значения
        режима доступа файла устанавливаются  равными  значению
        аргумента mode, модифицированному следующим образом:

        1.   Обнуляются биты, соответствующие  единичным  битам
             маски режима  создания  файлов  текущего  процесса
             [см. umask(2)].

        2.   Бит навязчивости [см. chmod(2)] обнуляется.

        В случае успешного завершения системного вызова возвра-
        щается дескриптор файла, открытого  только  на  запись,
        даже если режим доступа к файлу  не  разрешает  запись.
        Указатель текущей  позиции  устанавливается  на  начало
        файла. Дескриптор файла создается  таким,  чтобы  после
        выполнения системных  вызовов  exec(2)  файл  оставался
        открытым [см. fcntl(2)]. Процесс может иметь  открытыми
        одновременно не более 20 файлов. Новый файл может  быть
        создан с режимом доступа, запрещающим запись.

        Системный вызов creat завершается неудачей, если выпол-
        нено хотя бы одно из следующих условий:

        [ENOTDIR]   Компонент маршрута не является каталогом.

        [ENOENT]    Компонент маршрута не существует.

        [EACCES]    Для компонента маршрута  отсутствует  право
                    на поиск.

        [ENOENT]    Маршрутное имя пусто.

        [EACCES]    Создание файла требует  записи  в  каталог,
                    права на запись в который нет.

        [EROFS]     Файл расположен или должен быть  расположен
                    в файловой  системе,  доступной  только  на
                    чтение.

        [ETXTBSY]   Файл содержит  разделяемую  секцию  команд,
                    которая в данный момент выполняется.

        [EACCES]    Файл существует и запись в него запрещена.

        [EISDIR]    Файл существует и является каталогом.

        [EMFILE]    Превышается  максимально  допустимое  коли-
                    чество файлов, открытых одновременно в  од-
                    ном процессе.

        [EFAULT]    Аргумент path указывает за пределы отведен-
                    ного процессу адресного пространства.

        [ENFILE]    Переполнение системной таблицы файлов.

        [EAGAIN]    Файл существует и доступ к нему  заблокиро-
                    ван [см. chmod(2)].

        [EINTR]     Во время выполнения системного  вызова  пе-
                    рехвачен сигнал.

        [ENOLINK]   Маршрутное имя path указывает на  удаленный
                    компьютер, связи с которым в данный  момент
                    нет.

        [EMULTIHOP] Компоненты path требуют многократного обра-
                    щения к удаленным компьютерам.

        [ENOSPC]    Нет свободных описателей файлов.

СМ. ТАКЖЕ 
        chmod(2),   close(2),   dup(2),   fcntl(2),   lseek(2),
        open(2), read(2), umask(2), write(2).

ДИАГНОСТИКА 
        При успешном завершении результат равен неотрицательно-
        му целому числу - дескриптору файла;  в  случае  ошибки
        возвращается -1, а переменной errno  присваивается  код
        ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк