.\" -*- coding: UTF-8 -*- .\" $NetBSD: fts.3,v 1.13.2.1 1997/11/14 02:09:32 mrg Exp $ .\" .\" Copyright (c) 1989, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)fts.3 8.5 (Berkeley) 4/16/94 .\" .\" 2007-12-08, mtk, Converted from mdoc to man macros .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FTS 3 "11 апреля 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ fts, fts_open, fts_read, fts_children, fts_set, fts_close \- обход файловой иерархии .SH СИНТАКСИС .nf \fB#include \fP \fB#include \fP \fB#include \fP .PP \fBFTS *fts_open(char * const *\fP\fIpath_argv\fP\fB, int \fP\fIoptions\fP\fB,\fP \fB int (*\fP\fIcompar\fP\fB)(const FTSENT **, const FTSENT **));\fP .PP \fBFTSENT *fts_read(FTS *\fP\fIftsp\fP\fB);\fP .PP \fBFTSENT *fts_children(FTS *\fP\fIftsp\fP\fB, int \fP\fIinstr\fP\fB);\fP .PP \fBint fts_set(FTS *\fP\fIftsp\fP\fB, FTSENT *\fP\fIf\fP\fB, int \fP\fIinstr\fP\fB);\fP .PP \fBint fts_close(FTS *\fP\fIftsp\fP\fB);\fP .fi .SH ОПИСАНИЕ Функции fts созданы для обхода файловой иерархии. Обзорное описание: функция \fBfts_open\fP() возвращает «описатель» (с типом \fIFTS\ *\fP), который указывает на «поток» файловой иерархии. Далее он используется другими функциями fts. Функция \fBfts_read\fP() возвращает указатель на структуру, описывающую один из файлов в файловой иерархии. Функция \fBfts_children\fP() возвращает указатель на связанный список структур, каждая из которых описывает один из файлов, содержащихся в каталоге иерархии. .PP В общем случае, каталоги обходятся двумя разными путями — в прямом порядке (перед тем, как обработаны их потомки) и в обратном порядке (после того, как обработаны все потомки). Файлы обрабатываются только один раз. Возможен «логический» обход иерархии (обрабатываются файлы, на которые указывают символьные ссылки) и «физический» (обрабатываются сами символьные ссылки), то есть обход иерархии сократится или какая\-то часть будет пройдена повторно. .PP В файле \fI\fP определены две структуры (связанные с ними типы). Первая — структура \fIFTS\fP, представляющая саму иерархию файлов. Вторая — структура \fIFTSENT\fP, представляющая файл в иерархии файлов. Обычно, структура \fIFTSENT\fP возвращается для каждого файла в файловой иерархии. В этой справочной странице понятия «файл» и «структура FTSENT» взаимозаменяемы. .PP Структура \fIFTSENT\fP содержит поля, описывающие файл. На имеет, по меньшей мере, следующие поля (есть и дополнительные поля, но для реализации они должны считаться скрытыми): .PP .in +4n .EX .\" Also: .\" ino_t fts_ino; /* inode (only for directories)*/ .\" dev_t fts_dev; /* device (only for directories)*/ .\" nlink_t fts_nlink; /* link count (only for directories)*/ .\" u_short fts_flags; /* private flags for FTSENT structure */ .\" u_short fts_instr; /* fts_set() instructions */ typedef struct _ftsent { unsigned short fts_info; /* флаги для структуры FTSENT */ char *fts_accpath; /* путь доступа */ char *fts_path; /* начальный путь */ short fts_pathlen; /* strlen(fts_path) + strlen(fts_name) */ char *fts_name; /* имя файла */ short fts_namelen; /* strlen(fts_name) */ short fts_level; /* глубина (от \-1 до N) */ int fts_errno; /* файловый errno */ long fts_number; /* локальное числовое значение */ void *fts_pointer; /* локальное значение адреса */ struct _ftsent *fts_parent; /* родительский каталог */ struct _ftsent *fts_link; /* структура следующего файла */ struct _ftsent *fts_cycle; /* циклическая структура */ struct stat *fts_statp; /* информация stat(2) */ } FTSENT; .EE .in .PP .\" .Bl -tag -width "fts_namelen" Эти поля определены следующим образом: .TP \fIfts_info\fP .\" .Bl -tag -width FTS_DEFAULT Одно из следующих значений описывает возвращённую структуру \fIFTSENT\fP и файл, который она представляет. За исключением каталогов без ошибок (\fBFTS_D\fP), все эти элементы являются конечными, то есть они не будут повторно обходиться, а их потомки не будут обходиться вообще. .RS .TP \fBFTS_D\fP Каталог, посещаемый в прямом порядке. .TP \fBFTS_DC\fP Каталог, вызвавший зацикливание в дереве (также будет заполнено поле \fIfts_cycle\fP структуры \fIFTSENT\fP). .TP \fBFTS_DEFAULT\fP Любая структура \fIFTSENT\fP, представляющая тип файла, неявно описываемый одним из других значений \fIfts_info\fP. .TP \fBFTS_DNR\fP Каталог, который не может быть прочитан. Это значение возвращается при ошибке, и поле \fIfts_errno\fP будет заполнено тем, что вызвало ошибку. .TP \fBFTS_DOT\fP Файл с именем «.» или «..», который не был указан в качестве имени файла в \fBfts_open\fP() (смотрите \fBFTS_SEEDOT\fP). .TP \fBFTS_DP\fP Каталог, посещаемый в обратном порядке. Содержимое структуры \fIFTSENT\fP будет неизменно, как если бы он посещался в прямом порядке, то есть значение поля \fIfts_info\fP равно \fBFTS_D\fP. .TP \fBFTS_ERR\fP Это значение возвращается при ошибке, и поле \fIfts_errno\fP будет заполнено тем, что вызвало ошибку. .TP \fBFTS_F\fP Обычный файл. .TP \fBFTS_NS\fP Файл, для которого нет доступной информации по \fBstat\fP(2). Содержимое поля \fIfts_statp\fP не определено. Это значение возвращается при ошибке, и поле \fIfts_errno\fP будет заполнено тем, что вызвало ошибку. .TP \fBFTS_NSOK\fP Файл, для которого не запрашивалась информация с помощью \fBstat\fP(2). Содержимое поля \fIfts_statp\fP не определено. .TP \fBFTS_SL\fP Символьная ссылка. .TP \fBFTS_SLNONE\fP .\" .El Символьная ссылка, указывающая на несуществующий объект. В поле \fIfts_statp\fP содержится ссылка на информацию о свойствах самой символьной ссылки. .RE .TP \fIfts_accpath\fP Путь к файлу относительно текущего каталога. .TP \fIfts_path\fP Путь к файлу относительно начального каталога обхода. Этот путь содержит в себе путь (как префикс), указанный в \fBfts_open\fP(). .TP \fIfts_pathlen\fP Сумма длин строк, на которые ссылается \fIfts_path\fP и \fIfts_name\fP. .TP \fIfts_name\fP Имя файла. .TP \fIfts_namelen\fP Длина строки, на которую ссылается \fIfts_name\fP. .TP \fIfts_level\fP Глубина погружения в дерево иерархии, от \-1 до N, на которой был обнаружен файл. Структура \fIFTSENT\fP, представляющая родительский каталог обхода (или начальный каталог), обозначена как \-1, а структура \fIFTSENT\fP для самой начальной точки поиска обозначена как 0. .TP \fIfts_errno\fP Если при возврате структуры \fIFTSENT\fP функцией \fBfts_children\fP() или \fBfts_read\fP() её поле \fIfts_info\fP равно \fBFTS_DNR\fP, \fBFTS_ERR\fP или \fBFTS_NS\fP, то в поле \fIfts_errno\fP содержится номер ошибки (то есть значение \fIerrno\fP), обозначающее причину ошибки. В других случаях, содержимое поля \fIfts_errno\fP не определено. .TP \fIfts_number\fP Это поле создано для использования пользовательским приложением и не изменяется функциями fts. При инициализации оно устанавливается в 0. .TP \fIfts_pointer\fP Это поле создано для использования пользовательским приложением и не изменяется функциями fts. При инициализации оно устанавливается в NULL. .TP \fIfts_parent\fP Указатель на структуру \fIFTSENT\fP, которая ссылается на файл в иерархии непосредственно над текущим файлом, то есть на каталог, членом которого является текущий файл. Родительский каталог начальной точки поиска также может быть доступен, однако инициализируются только поля \fIfts_level\fP, \fIfts_number\fP и \fIfts_pointer\fP. .TP \fIfts_link\fP При возврате функции \fBfts_children\fP() поле \fIfts_link\fP указывает на следующую структуру в связанном списке (заканчивающемся NULL) содержимого каталога. В другим случаях содержимое поля \fIfts_link\fP не определено. .TP \fIfts_cycle\fP Если каталог вызывает зацикливание иерархии (смотрите \fBFTS_DC\fP), либо из\-за жёсткой ссылки между двумя каталогами, либо из\-за символьной ссылки, указывающей на каталог, то поле \fIfts_cycle\fP будет указывать на структуру \fIFTSENT\fP в иерархии, которая ссылается на тот же файл, что и текущая структура \fIFTSENT\fP. В других случаях содержимое поля \fIfts_cycle\fP не определено. .TP \fIfts_statp\fP .\" .El Указатель на информацию о файле, полученную с помощью \fBstat\fP(2). .PP Для всех путей всех файлов в иерархии используется единый буфер. Следовательно, поля \fIfts_path\fP и \fIfts_accpath\fP гарантировано завершаются null \fIтолько\fP для файла, который был возвращён \fBfts_read\fP() последним. Для использования этих полей для обращения к любым файлам, представленным другими структурами \fIFTSENT\fP необходимо, чтобы буфер пути был изменён в соответствии с информацией, содержащейся в поле \fIfts_pathlen\fP структуры \fIFTSENT\fP. Любое изменение должно быть обратно восстановлено перед дальнейшими попытками вызова \fBfts_read\fP(). Поле \fIfts_name\fP всегда завершается null. .SS fts_open() Функция \fBfts_open\fP() ожидает указатель на массив символьных указателей, обозначающих один или несколько путей, образующих логическую файловую иерархию, по которой будет проводиться обход. Массив должен заканчиваться указателем null. .PP .\" .Bl -tag -width "FTS_PHYSICAL" Есть несколько флагов, должен быть указан хотя бы один (либо \fBFTS_LOGICAL\fP, либо \fBFTS_PHYSICAL\fP). Флаги, выбираемые с помощью логического объединения, имеют следующие значения: .TP \fBFTS_COMFOLLOW\fP Этот флаг принуждает перемещаться по любой символьной ссылке, определённой как корневой путь, несмотря на то, определён или нет флаг \fBFTS_LOGICAL\fP. .TP \fBFTS_LOGICAL\fP Этот флаг принуждает функции fts возвращать структуры \fBFTSENT\fP для целей символьных ссылок вместо самих символьных ссылок. Если этот флаг включён, то единственные символьные ссылки, для которых приложениям выдаются структуры \fIFTSENT\fP — это ссылки, указывающие на несуществующие файлы. Также для работы функции \fBfts_open\fP() \fIдолжны\fP быть указаны \fBFTS_LOGICAL\fP или \fBFTS_PHYSICAL\fP. .TP \fBFTS_NOCHDIR\fP С целью оптимизации производительности функции fts меняют каталоги, по которым они следуют по файловой иерархии. Это имеет один побочный эффект — приложения не могут точно определить, в каком каталоге они находятся во время перемещения по дереву. Флаг \fBFTS_NOCHDIR\fP выключает такую оптимизацию, и функции fts не будут менять текущий каталог. Заметим, что приложения тоже не должны изменять свой текущий каталог и пытаться получить доступ к файлам, пока не указан флаг \fBFTS_NOCHDIR\fP и функции \fBfts_open\fP() не переданы абсолютные пути в качестве параметров. .TP \fBFTS_NOSTAT\fP По умолчанию, возвращаемые структуры \fIFTSENT\fP ссылаются на информацию о файлах (поле \fIstatp\fP) в каждом просмотренном файле. Данный флаг снимает это требование (для оптимизации производительности), позволяя функциям fts присваивать полю \fIfts_info\fP значение \fBFTS_NSOK\fP и оставлять содержание поля \fIstatp\fP неопределенным. .TP \fBFTS_PHYSICAL\fP Этот флаг заставляет функции fts выдавать структуру \fIFTSENT\fP самих символьных ссылок, а не файлов, на которые они указывают. Если этот флаг установлен, то для всех символьных ссылок в файловой иерархии приложениям возвращаются структуры \fIFTSENT\fP. Для работы функции \fBfts_open\fP() также \fIдолжны\fP присутствовать \fBFTS_LOGICAL\fP или \fBFTS_PHYSICAL\fP. .TP \fBFTS_SEEDOT\fP По умолчанию, все файлы с именами «.» или «..», обнаруженные в файловой иерархии, игнорируются, если они не указаны как параметры пути в \fBfts_open\fP(). Данный флаг принуждает функции fts для таких файлов возвращать структуры \fIFTSENT\fP. .TP \fBFTS_XDEV\fP .\" .El Этот флаг предотвращает функции fts от вхождения в каталоги, которые имеют номер устройства, отличный от файла, с которого начался обход. .PP В параметре \fBcompar\fP() указывается определяемая пользователем функция, которая может использоваться для упорядочивания обхода иерархии. В качестве параметров ей требуется два указателя на указатели на структуры \fIFTSENT\fP, и она должна возвращать отрицательное значение, ноль или положительное значение для того, чтобы показать, расположен ли файл, на который указывает первый параметр, перед (относительно текущего упорядочивания), на одном уровне или после файла, на который указывает второй параметр. Поля \fIfts_accpath\fP, \fIfts_path\fP и \fIfts_pathlen\fP структур \fIFTSENT\fP могут быть \fIникогда\fP не использованы при таком сравнении. Если значение поля \fIfts_info\fP равно \fBFTS_NS\fP или \fBFTS_NSOK\fP, то поле \fIfts_statp\fP может не использоваться. Если значение параметра \fBcompar\fP() равно NULL, то порядок обхода каталогов определяется параметрами, указанными в \fIpath_argv\fP для корневых путей, и в порядке, перечисленном в каталоге, для всего остального. .SS fts_read() Функция \fBfts_read\fP() возвращает указатель на структуру \fIFTSENT\fP, описывающую файл в иерархии. Каталоги (корректно считанные и не образующие зацикливаний), посещаются как минимум дважды — первый раз в прямом прохождении и второй раз в обратном. Все остальные файлы посещаются минимум один раз (жёсткие ссылки между каталогами, не образующие зацикливаний, или символьные ссылки на символьные ссылки могут привести к тому, что файлы будут посещаться более одного раза, а каталоги более двух раз). .PP Когда все члены иерархии возвращены, \fBfts_read\fP() возвращает NULL и устанавливает внешнюю переменную \fIerrno\fP равной 0. Если происходит ошибка, не имеющая отношения к файлу в иерархии, \fBfts_read\fP() возвращает NULL и устанавливает \fIerrno\fP в соответствующее значение. Если происходит ошибка, связанная с возвращённым файлом, то возвращается указатель на структуру \fIFTSENT\fP, а \fIerrno\fP может быть установлена в какое\-то значение (а может и не быть, смотрите \fIfts_info\fP). .PP Структуры \fIFTSENT\fP, возвращаемые \fBfts_read\fP(), могут быть перезаписаны после вызова \fBfts_close\fP() в том же файловом потоке иерархии или после вызова \fBfts_read\fP() в том же файловом потоке иерархии, если они не представляют файл типа «каталог»; в этом случае они не будут перезаписаны до тех пор, пока функция \fBfts_read\fP() не вернёт структуру \fIFTSENT\fP при выполнении обхода в обратном порядке. .SS fts_children() Функция \fBfts_children\fP() возвращает указатель на структуру \fIFTSENT\fP, описывающую первый член связанного списка (оканчивающегося NULL) файлов в каталоге, представленного структурой \fIFTSENT\fP, возвращённой \fBfts_read\fP() последней. Список связан через поле \fIfts_link\fP структуры \fIFTSENT\fP, и упорядочен определённой пользователем функцией сравнения, если таковая существует. Повторные вызовы \fBfts_children\fP() будут пересоздавать этот связанный список. .PP В особом случае, если \fBfts_read\fP() ещё не вызывалась для иерархии, то \fBfts_children\fP() возвратит указатель на файлы в логическом каталоге, заданном \fBfts_open\fP(), т.е. параметры, переданные функции \fBfts_open\fP(). В противном случае, если последняя возвращённая \fBfts_read\fP() структура \fIFTSENT\fP не является каталогом, просмотренном в прямом порядке, и не каталогом файлов, то \fBfts_children\fP() возвратит NULL и установит \fIerrno\fP равным 0. Если произойдёт ошибка, то \fBfts_children\fP() возвратит NULL и установит \fIerrno\fP в соответствующее значение. .PP Структура \fIFTSENT\fP, возвращаемая \fBfts_children\fP(), может быть перезаписана после вызова \fBfts_children\fP(), \fBfts_close\fP() или \fBfts_read\fP() в том же файловом потоке иерархии. .PP .\" .Bl -tag -width FTS_NAMEONLY Параметр \fIinstr\fP может принимать значение нуля или одного из следующих значений: .TP \fBFTS_NAMEONLY\fP .\" .El Необходимы только имена файлов. Содержимое всех полей в возвращаемом связанном списке структур не определено, за исключением полей \fIfts_name\fP и \fIfts_namelen\fP. .SS fts_set() Функция \fBfts_set\fP() позволяет пользовательскому приложению определять дальнейшую обработку файла \fIf\fP в потоке \fIftsp\fP. При успешном выполнении функция \fBfts_set\fP() возвращает 0 и \-1 при ошибке. .PP .\" .Bl -tag -width FTS_PHYSICAL Значением аргумента \fIinstr\fP может быть 0 («ничего не делать») или одно из следующих значений: .TP \fBFTS_AGAIN\fP Повторно посетить файл; файл любого типа может быть повторно посещён. Последующий вызов \fBfts_read\fP() возвратит файл, к которому идёт обращение. Поля \fIfts_stat\fP и \fIfts_info\fP структуры будут переинициализированы в этот момент, но никакие поля больше не будут изменены. Этот параметр значим только для последнего возвращённого файла из \fBfts_read\fP(). Обычно его используют при посещении каталогов в обратном порядке; в этом случае каталог посещается повторно (в прямом и обратном порядке), а также все его потомки. .TP \fBFTS_FOLLOW\fP Рассматриваемый файл должен быть символьной ссылкой. Если рассматриваемый файл — последний возвращённый \fBfts_read\fP(), то следующий вызов \fBfts_read\fP() возвратит файл с изменёнными полями \fIfts_info\fP и \fIfts_statp\fP, в которых будут отражать повторно инициализированные данные цели символьной ссылки, а не самой символьной ссылки. Если рассматриваемый файл — последний возвращённый \fBfts_children\fP(), то поля \fIfts_info\fP и \fIfts_statp\fP структуры при возврате из \fBfts_read\fP() будут отражать данные цели символьной ссылки, а не самой символьной ссылки. В любом случае, если цель символьной ссылки не существует, то поля возвращаемой структуры не будут меняться, а поле \fIfts_info\fP будет равно \fBFTS_SLNONE\fP. .IP Если цель ссылки — каталог, то выполняется возврат при прямом прохождении, после него возврат всех его потомков, после чего выполняется возврат в обратном порядке. .TP \fBFTS_SKIP\fP .\" .El Не посещать потомков данного файла. Файл может быть одним из последних возвращённых либо \fBfts_children\fP(), либо \fBfts_read\fP(). .SS fts_close() Функция \fBfts_close\fP() закрывает поток файловой иерархии, на который указывает \fIftsp\fP, и делает текущим каталогом тот, который был до вызова \fBfts_open\fP() для открытия \fIftsp\fP. При успешном выполнении функция \fBfts_close\fP() возвращает 0 и \-1 при ошибке. .SH ОШИБКИ Функция \fBfts_open\fP() может завершиться с ошибкой и назначить переменной \fIerrno\fP значения, перечисленные в \fBopen\fP(2) и \fBmalloc\fP(3). .PP Функция \fBfts_close\fP() может завершиться с ошибкой и назначить переменной \fIerrno\fP значения, перечисленные в \fBchdir\fP(2) и \fBclose\fP(2). .PP Функции \fBfts_read\fP() и \fBfts_children\fP() могут завершиться с ошибкой и назначить переменной \fIerrno\fP значения, перечисленные в \fBchdir\fP(2), \fBmalloc\fP(3), \fBopendir\fP(3), \fBreaddir\fP(3) и \fBstat\fP(2). .PP Кроме того, функции \fBfts_children\fP(), \fBfts_open\fP() и \fBfts_set\fP() могут завершиться с ошибкой и назначить переменной \fIerrno\fP следующие значения: .TP \fBEINVAL\fP Некорректное значение \fIoptions\fP или \fIinstr\fP. .SH ВЕРСИИ Эти функции доступны в версиях Linux начиная с glibc2. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbw34 lb lb l l l. Интерфейс Атрибут Значение T{ \fBfts_open\fP(), \fBfts_set\fP(), \fBfts_close\fP() T} Безвредность в нитях MT\-Safe T{ \fBfts_read\fP(), \fBfts_children\fP() T} Безвредность в нитях MT\-Unsafe .TE .sp 1 .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" 4.4BSD. .SH ДЕФЕКТЫ .\" Fixed by commit 8b7b7f75d91f7bac323dd6a370aeb3e9c5c4a7d5 .\" https://sourceware.org/bugzilla/show_bug.cgi?id=15838 .\" https://sourceware.org/bugzilla/show_bug.cgi?id=11460 .\" .\" The following statement is years old, and seems no closer to .\" being true -- mtk .\" The .\" .I fts .\" utility is expected to be included in a future .\" POSIX.1 .\" revision. В версиях glibc до 2.23 весь описанный здесь программный интерфейс небезопасен, если компиляция программы производится с программным интерфейсом LFS (например, когда компиляция выполняется с \fI\-D_FILE_OFFSET_BITS=64\fP). .SH "СМ. ТАКЖЕ" \fBfind\fP(1), \fBchdir\fP(2), \fBstat\fP(2), \fBftw\fP(3), \fBqsort\fP(3) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , 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 .