summaryrefslogtreecommitdiffstats
path: root/templates/man2/listxattr.2.pot
diff options
context:
space:
mode:
Diffstat (limited to 'templates/man2/listxattr.2.pot')
-rw-r--r--templates/man2/listxattr.2.pot769
1 files changed, 769 insertions, 0 deletions
diff --git a/templates/man2/listxattr.2.pot b/templates/man2/listxattr.2.pot
new file mode 100644
index 00000000..3ae5a56c
--- /dev/null
+++ b/templates/man2/listxattr.2.pot
@@ -0,0 +1,769 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 17:00+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "listxattr"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "listxattr, llistxattr, flistxattr - list extended attribute names"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>sys/xattr.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<ssize_t listxattr(const char *>I<path>B<, char *_Nullable >I<list>B<, size_t >I<size>B<);>\n"
+"B<ssize_t llistxattr(const char *>I<path>B<, char *_Nullable >I<list>B<, size_t >I<size>B<);>\n"
+"B<ssize_t flistxattr(int >I<fd>B<, char *_Nullable >I<list>B<, size_t >I<size>B<);>\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Extended attributes are I<name>:I<value> pairs associated with inodes "
+"(files, directories, symbolic links, etc.). They are extensions to the "
+"normal attributes which are associated with all inodes in the system (i.e., "
+"the B<stat>(2) data). A complete overview of extended attributes concepts "
+"can be found in B<xattr>(7)."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<listxattr>() retrieves the list of extended attribute names associated "
+"with the given I<path> in the filesystem. The retrieved list is placed in "
+"I<list>, a caller-allocated buffer whose size (in bytes) is specified in the "
+"argument I<size>. The list is the set of (null-terminated) names, one after "
+"the other. Names of extended attributes to which the calling process does "
+"not have access may be omitted from the list. The length of the attribute "
+"name I<list> is returned."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<llistxattr>() is identical to B<listxattr>(), except in the case of a "
+"symbolic link, where the list of names of extended attributes associated "
+"with the link itself is retrieved, not the file that it refers to."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<flistxattr>() is identical to B<listxattr>(), only the open file referred "
+"to by I<fd> (as returned by B<open>(2)) is interrogated in place of I<path>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A single extended attribute I<name> is a null-terminated string. The name "
+"includes a namespace prefix; there may be several, disjoint namespaces "
+"associated with an individual inode."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If I<size> is specified as zero, these calls return the current size of the "
+"list of extended attribute names (and leave I<list> unchanged). This can be "
+"used to determine the size of the buffer that should be supplied in a "
+"subsequent call. (But, bear in mind that there is a possibility that the "
+"set of extended attributes may change between the two calls, so that it is "
+"still necessary to check the return status from the second call.)"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Example"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<list> of names is returned as an unordered array of null-terminated "
+"character strings (attribute names are separated by null bytes "
+"(\\[aq]\\e0\\[aq])), like this:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "user.name1\\e0system.name1\\e0user.name2\\e0\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Filesystems that implement POSIX ACLs using extended attributes might return "
+"a I<list> like this:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "system.posix_acl_access\\e0system.posix_acl_default\\e0\n"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, a nonnegative number is returned indicating the size of the "
+"extended attribute name list. On failure, -1 is returned and I<errno> is "
+"set to indicate the error."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<E2BIG>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The size of the list of extended attribute names is larger than the maximum "
+"size allowed; the list cannot be retrieved. This can happen on filesystems "
+"that support an unlimited number of extended attributes per file such as "
+"XFS, for example. See BUGS."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOTSUP>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Extended attributes are not supported by the filesystem, or are disabled."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ERANGE>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The I<size> of the I<list> buffer is too small to hold the result."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "In addition, the errors documented in B<stat>(2) can also occur."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+#. .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.
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux 2.4, glibc 2.3."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. The xattr(7) page refers to this text:
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As noted in B<xattr>(7), the VFS imposes a limit of 64\\ kB on the size of "
+"the extended attribute name list returned by B<listxattr>(). If the total "
+"size of attribute names attached to a file exceeds this limit, it is no "
+"longer possible to retrieve the list of attribute names."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following program demonstrates the usage of B<listxattr>() and "
+"B<getxattr>(2). For the file whose pathname is provided as a command-line "
+"argument, it lists all extended file attributes and their values."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"To keep the code simple, the program assumes that attribute keys and values "
+"are constant during the execution of the program. A production program "
+"should expect and handle changes during execution of the program. For "
+"example, the number of bytes required for attribute keys might increase "
+"between the two calls to B<listxattr>(). An application could handle this "
+"possibility using a loop that retries the call (perhaps up to a "
+"predetermined maximum number of attempts) with a larger buffer each time it "
+"fails with the error B<ERANGE>. Calls to B<getxattr>(2) could be handled "
+"similarly."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following output was recorded by first creating a file, setting some "
+"extended file attributes, and then listing the attributes with the example "
+"program."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Example output"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<touch /tmp/foo>\n"
+"$ B<setfattr -n user.fred -v chocolate /tmp/foo>\n"
+"$ B<setfattr -n user.frieda -v bar /tmp/foo>\n"
+"$ B<setfattr -n user.empty /tmp/foo>\n"
+"$ B<./listxattr /tmp/foo>\n"
+"user.fred: chocolate\n"
+"user.frieda: bar\n"
+"user.empty: E<lt>no valueE<gt>\n"
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source (listxattr.c)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/xattr.hE<gt>\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *buf, *key, *val;\n"
+" ssize_t buflen, keylen, vallen;\n"
+"\\&\n"
+" if (argc != 2) {\n"
+" fprintf(stderr, \"Usage: %s path\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /*\n"
+" * Determine the length of the buffer needed.\n"
+" */\n"
+" buflen = listxattr(argv[1], NULL, 0);\n"
+" if (buflen == -1) {\n"
+" perror(\"listxattr\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" if (buflen == 0) {\n"
+" printf(\"%s has no attributes.\\en\", argv[1]);\n"
+" exit(EXIT_SUCCESS);\n"
+" }\n"
+"\\&\n"
+" /*\n"
+" * Allocate the buffer.\n"
+" */\n"
+" buf = malloc(buflen);\n"
+" if (buf == NULL) {\n"
+" perror(\"malloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /*\n"
+" * Copy the list of attribute keys to the buffer.\n"
+" */\n"
+" buflen = listxattr(argv[1], buf, buflen);\n"
+" if (buflen == -1) {\n"
+" perror(\"listxattr\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /*\n"
+" * Loop over the list of zero terminated strings with the\n"
+" * attribute keys. Use the remaining buffer length to determine\n"
+" * the end of the list.\n"
+" */\n"
+" key = buf;\n"
+" while (buflen E<gt> 0) {\n"
+"\\&\n"
+" /*\n"
+" * Output attribute key.\n"
+" */\n"
+" printf(\"%s: \", key);\n"
+"\\&\n"
+" /*\n"
+" * Determine length of the value.\n"
+" */\n"
+" vallen = getxattr(argv[1], key, NULL, 0);\n"
+" if (vallen == -1)\n"
+" perror(\"getxattr\");\n"
+"\\&\n"
+" if (vallen E<gt> 0) {\n"
+"\\&\n"
+" /*\n"
+" * Allocate value buffer.\n"
+" * One extra byte is needed to append 0x00.\n"
+" */\n"
+" val = malloc(vallen + 1);\n"
+" if (val == NULL) {\n"
+" perror(\"malloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+"\\&\n"
+" /*\n"
+" * Copy value to buffer.\n"
+" */\n"
+" vallen = getxattr(argv[1], key, val, vallen);\n"
+" if (vallen == -1) {\n"
+" perror(\"getxattr\");\n"
+" } else {\n"
+" /*\n"
+" * Output attribute value.\n"
+" */\n"
+" val[vallen] = 0;\n"
+" printf(\"%s\", val);\n"
+" }\n"
+"\\&\n"
+" free(val);\n"
+" } else if (vallen == 0) {\n"
+" printf(\"E<lt>no valueE<gt>\");\n"
+" }\n"
+"\\&\n"
+" printf(\"\\en\");\n"
+"\\&\n"
+" /*\n"
+" * Forward to next attribute key.\n"
+" */\n"
+" keylen = strlen(key) + 1;\n"
+" buflen -= keylen;\n"
+" key += keylen;\n"
+" }\n"
+"\\&\n"
+" free(buf);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<getfattr>(1), B<setfattr>(1), B<getxattr>(2), B<open>(2), "
+"B<removexattr>(2), B<setxattr>(2), B<stat>(2), B<symlink>(7), B<xattr>(7)"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm
+msgid ""
+"These system calls have been available since Linux 2.4; glibc support is "
+"provided since glibc 2.3."
+msgstr ""
+
+#. .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.
+#. type: Plain text
+#: debian-bookworm
+msgid "These system calls are Linux-specific."
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/xattr.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *buf, *key, *val;\n"
+" ssize_t buflen, keylen, vallen;\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (argc != 2) {\n"
+" fprintf(stderr, \"Usage: %s path\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Determine the length of the buffer needed.\n"
+" */\n"
+" buflen = listxattr(argv[1], NULL, 0);\n"
+" if (buflen == -1) {\n"
+" perror(\"listxattr\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+" if (buflen == 0) {\n"
+" printf(\"%s has no attributes.\\en\", argv[1]);\n"
+" exit(EXIT_SUCCESS);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Allocate the buffer.\n"
+" */\n"
+" buf = malloc(buflen);\n"
+" if (buf == NULL) {\n"
+" perror(\"malloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Copy the list of attribute keys to the buffer.\n"
+" */\n"
+" buflen = listxattr(argv[1], buf, buflen);\n"
+" if (buflen == -1) {\n"
+" perror(\"listxattr\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Loop over the list of zero terminated strings with the\n"
+" * attribute keys. Use the remaining buffer length to determine\n"
+" * the end of the list.\n"
+" */\n"
+" key = buf;\n"
+" while (buflen E<gt> 0) {\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Output attribute key.\n"
+" */\n"
+" printf(\"%s: \", key);\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Determine length of the value.\n"
+" */\n"
+" vallen = getxattr(argv[1], key, NULL, 0);\n"
+" if (vallen == -1)\n"
+" perror(\"getxattr\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " if (vallen E<gt> 0) {\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Allocate value buffer.\n"
+" * One extra byte is needed to append 0x00.\n"
+" */\n"
+" val = malloc(vallen + 1);\n"
+" if (val == NULL) {\n"
+" perror(\"malloc\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Copy value to buffer.\n"
+" */\n"
+" vallen = getxattr(argv[1], key, val, vallen);\n"
+" if (vallen == -1) {\n"
+" perror(\"getxattr\");\n"
+" } else {\n"
+" /*\n"
+" * Output attribute value.\n"
+" */\n"
+" val[vallen] = 0;\n"
+" printf(\"%s\", val);\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" free(val);\n"
+" } else if (vallen == 0) {\n"
+" printf(\"E<lt>no valueE<gt>\");\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " printf(\"\\en\");\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /*\n"
+" * Forward to next attribute key.\n"
+" */\n"
+" keylen = strlen(key) + 1;\n"
+" buflen -= keylen;\n"
+" key += keylen;\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" free(buf);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""