.\" -*- coding: UTF-8 -*- .\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" and Copyright (C) 1993 Michael Haardt .\" and Copyright (C) 1993,1994 Ian Jackson .\" and Copyright (C) 2006, 2014 Michael Kerrisk .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" You may distribute it under the terms of the GNU General .\" Public License. It comes with NO WARRANTY. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MKDIR 2 "9 июня 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ mkdir, mkdirat \- создаёт каталог .SH СИНТАКСИС .nf .\" .B #include \fB#include \fP \fB#include \fP .PP \fBint mkdir(const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP \fB#include \fP/* определения констант AT_* */ \fB#include \fP .PP \fBint mkdirat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB, mode_t \fP\fImode\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBmkdirat\fP(): .PD 0 .ad l .RS 4 .TP 4 Начиная с glibc 2.10: _POSIX_C_SOURCE\ >=\ 200809L .TP До glibc 2.10: _ATFILE_SOURCE .RE .ad .PD .SH ОПИСАНИЕ Функция \fBmkdir\fP() пытается создать каталог с именем \fIpathname\fP. .PP В аргументе \fImode\fP задаются права доступа к новому каталогу (смотрите \fBinode\fP(7)). Эти права стандартным образом изменяются с помощью согласно \fIumask\fP процесса: при отсутствии списка доступа по умолчанию права на созданный каталог будут рассчитаны как (\fImode\fP & \(ti\fIumask\fP & 0777). Другие биты \fImode\fP на создаваемый каталог зависят от операционной системы. Для Linux они описаны в ЗАМЕЧАНИЯХ. .PP Создаваемый каталог будет принадлежать фактическому владельцу процесса. Если у родительского каталога установлен флаг set\-group\-ID, или файловая система смонтирована с семантикой групп в стиле BSD (\fImount \-o bsdgroups\fP или, что одно и тоже, \fImount \-o grpid\fP), то новый каталог унаследует группу владельца от своего родительского каталога; в противном случае группой владельцем станет фактическая группа процесса. .PP .\" .\" Если у родительского каталога установлен бит set\-group\-ID, то он будет установлен также и у создаваемого каталога. .SS mkdirat() Системный вызов \fBmkdirat\fP() работает также как системный вызов \fBmkdir\fP(), за исключением случаев, описанных здесь. .PP Если в \fIpathname\fP задан относительный путь, то он считается относительно каталога, на который ссылается файловый дескриптор \fIdirfd\fP (а не относительно текущего рабочего каталога вызывающего процесса, как это делается в \fBmkdir\fP()). .PP Если в \fIpathname\fP задан относительный путь и \fIdirfd\fP равно специальному значению \fBAT_FDCWD\fP, то \fIpathname\fP рассматривается относительно текущего рабочего каталога вызывающего процесса (как \fBmkdir\fP()). .PP Если в \fIpathname\fP задан абсолютный путь, то \fIdirfd\fP игнорируется. .PP Смотрите в \fBopenat\fP(2) объяснение необходимости \fBmkdirat\fP(). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении вызовов \fBmkdir\fP() и \fBmkdirat\fP() возвращается 0. В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ .TP \fBEACCES\fP У процесса нет прав на запись в родительский каталог, или в одном из каталогов в \fIpathname\fP не разрешён поиск (смотрите также \fBpath_resolution\fP(7)). .TP \fBEDQUOT\fP Исчерпана пользовательская квота на дисковые блоки или иноды файловой системы. .TP \fBEEXIST\fP \fIpathname\fP уже существует (и необязательно как каталог). В этом случае \fIpathname\fP может быть символьной ссылкой, повисшей или нет. .TP \fBEFAULT\fP Аргумент \fIpathname\fP указывает за пределы доступного адресного пространства. .TP \fBEINVAL\fP Последний компонент («основная часть» (basename)) нового каталога \fIpathname\fP некорректен (например, содержит недопустимые в нижележащей файловой системе символы). .TP \fBELOOP\fP Во время определения \fIpathname\fP встретилось слишком много символьных ссылок. .TP \fBEMLINK\fP Количество ссылок на родительский каталог превысило бы \fBLINK_MAX\fP. .TP \fBENAMETOOLONG\fP \fIpathname\fP слишком длинен. .TP \fBENOENT\fP Один из каталогов в \fIpathname\fP не существует или является повисшей символьной ссылкой. .TP \fBENOMEM\fP Недостаточное количество памяти ядра. .TP \fBENOSPC\fP На устройстве, содержащем \fIpathname\fP, нет места для создания нового каталога. .TP \fBENOSPC\fP Новый каталог не может быть создан, так как превышена пользовательская дисковая квота. .TP \fBENOTDIR\fP Компонент пути, использованный как каталог в \fIpathname\fP, в действительности таковым не является. .TP \fBEPERM\fP Файловая система, содержащая \fIpathname\fP, не поддерживает создание каталогов. .TP \fBEROFS\fP \fIpathname\fP указывает на файл в файловой системе, доступной только для чтения. .PP В \fBmkdirat\fP() дополнительно могут возникнуть следующие ошибки: .TP \fBEBADF\fP \fIdirfd\fP не является правильным файловым дескриптором. .TP \fBENOTDIR\fP Значение \fIpathname\fP содержит относительный путь и \fIdirfd\fP содержит файловый дескриптор, указывающий на файл, а не на каталог. .SH ВЕРСИИ Вызов \fBmkdirat\fP() был добавлен в ядро Linux версии 2.6.16; поддержка в glibc доступна с версии 2.4. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" .\" SVr4 documents additional EIO, EMULTIHOP \fBmkdir\fP(): SVr4, BSD, POSIX.1\-2001, POSIX.1\-2008. .PP \fBmkdirat\fP(): POSIX.1\-2008. .SH ЗАМЕЧАНИЯ В Linux кроме битов прав, в \fImode\fP учитывается также бит \fBS_ISVTX\fP. .PP В протоколе, на котором работает NFS, есть множество недоработок. Некоторые из них влияют на \fBmkdir\fP(). .SS "Замечания по glibc" В старых ядрах, где \fBmkdirat\fP() отсутствует, обёрточная функция glibc использует \fBmkdir\fP(). Если \fIpathname\fP является относительным путём, то glibc собирает путь относительно символической ссылки в \fI/proc/self/fd\fP, которая соответствует аргументу \fIdirfd\fP. .SH "СМ. ТАКЖЕ" \fBmkdir\fP(1), \fBchmod\fP(2), \fBchown\fP(2), \fBmknod\fP(2), \fBmount\fP(2), \fBrmdir\fP(2), \fBstat\fP(2), \fBumask\fP(2), \fBunlink\fP(2), \fBacl\fP(5), \fBpath_resolution\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан aereiae , Alexey , Azamat Hackimov , Dmitriy S. Seregin , Dmitry Bolkhovskikh , ITriskTI , Max Is , Yuri Kozlov , Иван Павлов и Малянов Евгений Викторович . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .