.\" -*- coding: UTF-8 -*- .\" Copyright (C) Andreas Gruenbacher, February 2001 .\" Copyright (C) Silicon Graphics Inc, September 2001 .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GETXATTR 2 "9 июня 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ getxattr, lgetxattr, fgetxattr \- получить расширенное значение атрибута .SH СИНТАКСИС .fam C .nf \fB#include \fP \fB#include \fP .PP \fBssize_t getxattr(const char\ *\fP\fIpath\fP\fB, const char\ *\fP\fIname\fP\fB,\fP \fB void\ *\fP\fIvalue\fP\fB, size_t \fP\fIsize\fP\fB);\fP \fBssize_t lgetxattr(const char\ *\fP\fIpath\fP\fB, const char\ *\fP\fIname\fP\fB,\fP \fB void\ *\fP\fIvalue\fP\fB, size_t \fP\fIsize\fP\fB);\fP \fBssize_t fgetxattr(int \fP\fIfd\fP\fB, const char\ *\fP\fIname\fP\fB,\fP \fB void\ *\fP\fIvalue\fP\fB, size_t \fP\fIsize\fP\fB);\fP .fi .fam T .SH ОПИСАНИЕ Расширенные атрибуты представляют собой пару \fIимя\fP:\fIзначение\fP и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные \fBstat\fP(2)). Полное описание модели расширенных атрибутов можно найти в \fBxattr\fP(7). .PP \fBgetxattr\fP() возвращает значение расширенного атрибута с именем \fIname\fP и связанного с указанным путем \fIpath\fP в файловой системе. Значение атрибута помещается в буфер, указанный в \fIvalue\fP; в \fIsize\fP задаётся размер этого буфера. В качестве возвращаемого значения вызова возвращается количество байт, помещённых в \fIvalue\fP. .PP \fBlgetxattr\fP() идентичен \fBgetxattr\fP(), за исключением указания символьной ссылки, когда рассматривается именно ссылка, а не файл, на который она указывает. .PP \fBfgetxattr\fP() идентичен \fBgetxattr\fP(), только вместо \fIpath\fP берётся открытый файл, на который указывает \fIfd\fP (возвращаемый \fBopen\fP(2)). .PP Расширенный атрибут \fIname\fP является строкой, заканчивающейся null. Имя включает префикс пространства имён; их может быть несколько, разрозненные пространства связаны с разными записями inode. Значением расширенного атрибута является произвольный кусок текстовых или двоичных данных, который был назначен с помощью \fBsetxattr\fP(2). .PP Если \fIsize\fP равно нулю, то эти вызовы возвращают текущий размер указанного расширенного атрибута (и не изменяют \fIvalue\fP). Это можно использовать для определения размера буфера, который вместил бы всё значение, связанное с расширенным атрибутом (но учтите, есть вероятность, что значение атрибута может измениться между двумя вызовами, поэтому всё равно нужно проверять возвращаемое состояние после второго вызова). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении эти вызовы возвращают неотрицательное число, обозначающее размер (в байтах) значения расширенного атрибута. При ошибке возвращается \-1 и \fIerrno\fP устанавливается в соответствующее значение. .SH ОШИБКИ .TP \fBE2BIG\fP Размер значения атрибута больше максимально разрешённого размера; атрибут невозможно считать. Это может случиться в файловых системах (например NFSv4), которые поддерживают очень большие значения атрибутов. .TP \fBENODATA\fP .\" .RB ( ENOATTR .\" is defined to be a synonym for .\" .BR ENODATA .\" in .\" .IR .) Атрибут с таким именем не существует или процесс не имеет доступа к этому атрибуту. .TP \fBENOTSUP\fP Расширенные атрибуты не поддерживаются файловой системой или отключены. .TP \fBERANGE\fP Размер \fIsize\fP буфера \fIvalue\fP слишком мал для хранения результата. .PP Также могут возникать ошибки, описанные в \fBstat\fP(2). .SH ВЕРСИИ Данные системные вызовы доступны в Linux начиная с ядра версии 2.4; поддержка в glibc появилась в версии 2.3. .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" .\" .SH AUTHORS .\" Andreas Gruenbacher, .\" .RI < a.gruenbacher@computer.org > .\" and the SGI XFS development team, .\" .RI < linux-xfs@oss.sgi.com >. .\" Please send any bug reports or comments to these addresses. Данные системные вызовы есть только в Linux. .SH ПРИМЕРЫ Смотрите \fBlistxattr\fP(2). .SH "СМ. ТАКЖЕ" \fBgetfattr\fP(1), \fBsetfattr\fP(1), \fBlistxattr\fP(2), \fBopen\fP(2), \fBremovexattr\fP(2), \fBsetxattr\fP(2), \fBstat\fP(2), \fBsymlink\fP(7), \fBxattr\fP(7) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , 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 .