# 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: 2012-05-01 04:38+0900\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
#: build/C/man3/closedir.3:29
#, no-wrap
msgid "CLOSEDIR"
msgstr ""

#. type: TH
#: build/C/man3/closedir.3:29
#, no-wrap
msgid "2008-09-23"
msgstr ""

#. type: TH
#: build/C/man3/closedir.3:29 build/C/man3/dirfd.3:23 build/C/man2/getdents.2:27 build/C/man3/getdirentries.3:27 build/C/man3/opendir.3:30 build/C/man2/readdir.2:28 build/C/man3/readdir.3:34 build/C/man3/rewinddir.3:29 build/C/man3/scandir.3:34 build/C/man3/scandirat.3:26 build/C/man3/seekdir.3:28 build/C/man3/telldir.3:28
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:30 build/C/man3/dirfd.3:24 build/C/man2/getdents.2:28 build/C/man3/getdirentries.3:28 build/C/man3/opendir.3:31 build/C/man2/readdir.2:29 build/C/man3/readdir.3:35 build/C/man3/rewinddir.3:30 build/C/man3/scandir.3:35 build/C/man3/scandirat.3:27 build/C/man3/seekdir.3:29 build/C/man3/telldir.3:29
#, no-wrap
msgid "NAME"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:32
msgid "closedir - close a directory"
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:32 build/C/man3/dirfd.3:26 build/C/man2/getdents.2:30 build/C/man3/getdirentries.3:30 build/C/man3/opendir.3:33 build/C/man2/readdir.2:31 build/C/man3/readdir.3:37 build/C/man3/rewinddir.3:32 build/C/man3/scandir.3:37 build/C/man3/scandirat.3:29 build/C/man3/seekdir.3:32 build/C/man3/telldir.3:31
#, no-wrap
msgid "SYNOPSIS"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:35 build/C/man3/opendir.3:36 build/C/man3/rewinddir.3:35
#, no-wrap
msgid "B<#include E<lt>sys/types.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:37 build/C/man3/opendir.3:38 build/C/man3/readdir.3:40 build/C/man3/rewinddir.3:37 build/C/man3/scandir.3:40 build/C/man3/seekdir.3:35 build/C/man3/telldir.3:34
#, no-wrap
msgid "B<#include E<lt>dirent.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:39
#, no-wrap
msgid "B<int closedir(DIR *>I<dirp>B<);>\n"
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:40 build/C/man3/dirfd.3:52 build/C/man2/getdents.2:35 build/C/man3/getdirentries.3:43 build/C/man3/opendir.3:61 build/C/man2/readdir.2:37 build/C/man3/readdir.3:59 build/C/man3/rewinddir.3:40 build/C/man3/scandir.3:63 build/C/man3/scandirat.3:45 build/C/man3/seekdir.3:46 build/C/man3/telldir.3:45
#, no-wrap
msgid "DESCRIPTION"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:51
msgid ""
"The B<closedir>()  function closes the directory stream associated with "
"I<dirp>.  A successful call to B<closedir>()  also closes the underlying "
"file descriptor associated with I<dirp>.  The directory stream descriptor "
"I<dirp> is not available after this call."
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:51 build/C/man3/dirfd.3:67 build/C/man2/getdents.2:136 build/C/man3/getdirentries.3:56 build/C/man3/opendir.3:81 build/C/man2/readdir.2:86 build/C/man3/readdir.3:117 build/C/man3/rewinddir.3:45 build/C/man3/scandir.3:90 build/C/man3/scandirat.3:79 build/C/man3/seekdir.3:58 build/C/man3/telldir.3:50
#, no-wrap
msgid "RETURN VALUE"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:58
msgid ""
"The B<closedir>()  function returns 0 on success.  On error, -1 is returned, "
"and I<errno> is set appropriately."
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:58 build/C/man3/dirfd.3:70 build/C/man2/getdents.2:142 build/C/man3/getdirentries.3:62 build/C/man3/opendir.3:90 build/C/man2/readdir.2:92 build/C/man3/readdir.3:141 build/C/man3/scandir.3:103 build/C/man3/scandirat.3:86 build/C/man3/telldir.3:58
#, no-wrap
msgid "ERRORS"
msgstr ""

#. type: TP
#: build/C/man3/closedir.3:59 build/C/man2/getdents.2:143 build/C/man3/opendir.3:94 build/C/man2/readdir.2:93 build/C/man3/readdir.3:142 build/C/man3/scandirat.3:93 build/C/man3/telldir.3:59
#, no-wrap
msgid "B<EBADF>"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:62 build/C/man3/readdir.3:145 build/C/man3/telldir.3:62
msgid "Invalid directory stream descriptor I<dirp>."
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:62 build/C/man3/dirfd.3:83 build/C/man2/getdents.2:159 build/C/man3/getdirentries.3:64 build/C/man3/opendir.3:116 build/C/man2/readdir.2:109 build/C/man3/readdir.3:145 build/C/man3/rewinddir.3:49 build/C/man3/scandir.3:116 build/C/man3/scandirat.3:106 build/C/man3/seekdir.3:62 build/C/man3/telldir.3:62
#, no-wrap
msgid "CONFORMING TO"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:64
msgid "SVr4, POSIX.1-2001, 4.3BSD."
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:64 build/C/man3/dirfd.3:95 build/C/man2/getdents.2:273 build/C/man3/getdirentries.3:72 build/C/man3/opendir.3:138 build/C/man2/readdir.2:117 build/C/man3/readdir.3:239 build/C/man3/rewinddir.3:51 build/C/man3/scandir.3:172 build/C/man3/scandirat.3:113 build/C/man3/seekdir.3:72 build/C/man3/telldir.3:72
#, no-wrap
msgid "SEE ALSO"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:72
msgid ""
"B<close>(2), B<opendir>(3), B<readdir>(3), B<rewinddir>(3), B<scandir>(3), "
"B<seekdir>(3), B<telldir>(3)"
msgstr ""

#. type: SH
#: build/C/man3/closedir.3:72 build/C/man3/dirfd.3:104 build/C/man2/getdents.2:276 build/C/man3/getdirentries.3:75 build/C/man3/opendir.3:147 build/C/man2/readdir.2:120 build/C/man3/readdir.3:251 build/C/man3/rewinddir.3:58 build/C/man3/scandir.3:184 build/C/man3/scandirat.3:117 build/C/man3/seekdir.3:80 build/C/man3/telldir.3:79
#, no-wrap
msgid "COLOPHON"
msgstr ""

#. type: Plain text
#: build/C/man3/closedir.3:79 build/C/man3/dirfd.3:111 build/C/man2/getdents.2:283 build/C/man3/getdirentries.3:82 build/C/man3/opendir.3:154 build/C/man2/readdir.2:127 build/C/man3/readdir.3:258 build/C/man3/rewinddir.3:65 build/C/man3/scandir.3:191 build/C/man3/scandirat.3:124 build/C/man3/seekdir.3:87 build/C/man3/telldir.3:86
msgid ""
"This page is part of release 3.40 of the Linux I<man-pages> project.  A "
"description of the project, and information about reporting bugs, can be "
"found at http://www.kernel.org/doc/man-pages/."
msgstr ""

#. type: TH
#: build/C/man3/dirfd.3:23
#, no-wrap
msgid "DIRFD"
msgstr ""

#. type: TH
#: build/C/man3/dirfd.3:23
#, no-wrap
msgid "2010-09-26"
msgstr ""

#. type: TH
#: build/C/man3/dirfd.3:23 build/C/man2/getdents.2:27 build/C/man2/readdir.2:28 build/C/man3/scandirat.3:26
#, no-wrap
msgid "Linux"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:26
msgid "dirfd - get directory stream file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:28
msgid "B<#include E<lt>sys/types.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:30 build/C/man3/getdirentries.3:32
msgid "B<#include E<lt>dirent.hE<gt>>"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:32
msgid "B<int dirfd(DIR *>I<dirp>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:36 build/C/man3/getdirentries.3:39 build/C/man3/opendir.3:46 build/C/man3/readdir.3:50 build/C/man3/scandir.3:55 build/C/man3/seekdir.3:42 build/C/man3/telldir.3:41
msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:39
msgid "B<dirfd>():"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:44
msgid "_BSD_SOURCE || _SVID_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:46
msgid "|| /* Since glibc 2.10: */"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:48
msgid "(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:57
msgid ""
"The function B<dirfd>()  returns the file descriptor associated with the "
"directory stream I<dirp>."
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:67
msgid ""
"This descriptor is the one used internally by the directory stream.  As a "
"result, it is only useful for functions which do not depend on or alter the "
"file position, such as B<fstat>(2)  and B<fchdir>(2).  It will be "
"automatically closed when B<closedir>(3)  is called."
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:70
msgid ""
"On success, a nonnegative file descriptor is returned.  On error, -1 is "
"returned."
msgstr ""

#.  glibc 2.8
#. type: Plain text
#: build/C/man3/dirfd.3:75
msgid ""
"POSIX.1-2008 specifies two errors, neither of which is returned by the "
"current implementation."
msgstr ""

#. type: TP
#: build/C/man3/dirfd.3:75 build/C/man2/getdents.2:150 build/C/man2/readdir.2:100
#, no-wrap
msgid "B<EINVAL>"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:79
msgid "I<dirp> does not refer to a valid directory stream."
msgstr ""

#. type: TP
#: build/C/man3/dirfd.3:79
#, no-wrap
msgid "B<ENOTSUP>"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:83
msgid ""
"The implementation does not support the association of a file descriptor "
"with a directory."
msgstr ""

#.  It is present in libc5 (since 5.1.2) and in glibc2.
#. type: Plain text
#: build/C/man3/dirfd.3:87
msgid ""
"POSIX.1-2008.  This function was a BSD extension, present in 4.3BSD-Reno, "
"not in 4.2BSD."
msgstr ""

#. type: SH
#: build/C/man3/dirfd.3:87 build/C/man2/getdents.2:162 build/C/man3/opendir.3:121 build/C/man2/readdir.2:111 build/C/man3/readdir.3:147 build/C/man3/scandirat.3:108 build/C/man3/seekdir.3:64 build/C/man3/telldir.3:64
#, no-wrap
msgid "NOTES"
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:95
msgid ""
"The prototype for B<dirfd>()  is only available if B<_BSD_SOURCE> or "
"B<_SVID_SOURCE> is defined."
msgstr ""

#. type: Plain text
#: build/C/man3/dirfd.3:104
msgid ""
"B<open>(2), B<closedir>(3), B<opendir>(3), B<readdir>(3), B<rewinddir>(3), "
"B<scandir>(3), B<seekdir>(3), B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man2/getdents.2:27
#, no-wrap
msgid "GETDENTS"
msgstr ""

#. type: TH
#: build/C/man2/getdents.2:27
#, no-wrap
msgid "2010-11-21"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:30
msgid "getdents - get directory entries"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:34
#, no-wrap
msgid ""
"B<int getdents(unsigned int >I<fd>B<, struct linux_dirent *>I<dirp>B<,>\n"
"B<             unsigned int >I<count>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:41
msgid ""
"This is not the function you are interested in.  Look at B<readdir>(3)  for "
"the POSIX conforming C library interface.  This page documents the bare "
"kernel system call interface."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:54
msgid ""
"The system call B<getdents>()  reads several I<linux_dirent> structures from "
"the directory referred to by the open file descriptor I<fd> into the buffer "
"pointed to by I<dirp>.  The argument I<count> specifies the size of that "
"buffer."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:58
msgid "The I<linux_dirent> structure is declared as follows:"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:73
#, no-wrap
msgid ""
"struct linux_dirent {\n"
"    unsigned long  d_ino;     /* Inode number */\n"
"    unsigned long  d_off;     /* Offset to next I<linux_dirent> */\n"
"    unsigned short d_reclen;  /* Length of this I<linux_dirent> */\n"
"    char           d_name[];  /* Filename (null-terminated) */\n"
"                        /* length is actually (d_reclen - 2 -\n"
"                           offsetof(struct linux_dirent, d_name) */\n"
"    /*\n"
"    char           pad;       // Zero padding byte\n"
"    char           d_type;    // File type (only since Linux 2.6.4;\n"
"                              // offset is (d_reclen - 1))\n"
"    */\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:75
#, no-wrap
msgid "}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:88
msgid ""
"I<d_ino> is an inode number.  I<d_off> is the distance from the start of the "
"directory to the start of the next I<linux_dirent>.  I<d_reclen> is the size "
"of this entire I<linux_dirent>.  I<d_name> is a null-terminated filename."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:93
msgid ""
"I<d_type> is a byte at the end of the structure that indicates the file "
"type.  It contains one of the following values (defined in "
"I<E<lt>dirent.hE<gt>>):"
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:93 build/C/man3/readdir.3:176
#, no-wrap
msgid "B<DT_BLK>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:96 build/C/man3/readdir.3:179
msgid "This is a block device."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:96 build/C/man3/readdir.3:179
#, no-wrap
msgid "B<DT_CHR>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:99 build/C/man3/readdir.3:182
msgid "This is a character device."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:99 build/C/man3/readdir.3:182
#, no-wrap
msgid "B<DT_DIR>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:102 build/C/man3/readdir.3:185
msgid "This is a directory."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:102 build/C/man3/readdir.3:185
#, no-wrap
msgid "B<DT_FIFO>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:105 build/C/man3/readdir.3:188
msgid "This is a named pipe (FIFO)."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:105 build/C/man3/readdir.3:188
#, no-wrap
msgid "B<DT_LNK>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:108 build/C/man3/readdir.3:191
msgid "This is a symbolic link."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:108 build/C/man3/readdir.3:191
#, no-wrap
msgid "B<DT_REG>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:111 build/C/man3/readdir.3:194
msgid "This is a regular file."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:111 build/C/man3/readdir.3:194
#, no-wrap
msgid "B<DT_SOCK>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:114 build/C/man3/readdir.3:197
msgid "This is a UNIX domain socket."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:114 build/C/man3/readdir.3:197
#, no-wrap
msgid "B<DT_UNKNOWN>"
msgstr ""

#.  The glibc manual says that on some systems this is the only
#.  value returned
#. type: Plain text
#: build/C/man2/getdents.2:117 build/C/man3/readdir.3:202
msgid "The file type is unknown."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:127
msgid ""
"The I<d_type> field is implemented since Linux 2.6.4.  It occupies a space "
"that was previously a zero-filled padding byte in the I<linux_dirent> "
"structure.  Thus, on kernels before 2.6.3, attempting to access this field "
"always provides the value 0 (B<DT_UNKNOWN>)."
msgstr ""

#.  kernel 2.6.27
#.  The same sentence is in getdents.2
#. type: Plain text
#: build/C/man2/getdents.2:136 build/C/man3/readdir.3:216
msgid ""
"Currently, only some file systems (among them: Btrfs, ext2, ext3, and ext4)  "
"have full support for returning the file type in I<d_type>.  All "
"applications must properly handle a return of B<DT_UNKNOWN>."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:142
msgid ""
"On success, the number of bytes read is returned.  On end of directory, 0 is "
"returned.  On error, -1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:147 build/C/man2/readdir.2:97
msgid "Invalid file descriptor I<fd>."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:147 build/C/man2/readdir.2:97
#, no-wrap
msgid "B<EFAULT>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:150 build/C/man2/readdir.2:100
msgid "Argument points outside the calling process's address space."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:153 build/C/man2/readdir.2:103
msgid "Result buffer is too small."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:153 build/C/man3/opendir.3:104 build/C/man2/readdir.2:103 build/C/man3/scandir.3:104
#, no-wrap
msgid "B<ENOENT>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:156 build/C/man2/readdir.2:106
msgid "No such directory."
msgstr ""

#. type: TP
#: build/C/man2/getdents.2:156 build/C/man3/opendir.3:110 build/C/man2/readdir.2:106 build/C/man3/scandir.3:110 build/C/man3/scandirat.3:97
#, no-wrap
msgid "B<ENOTDIR>"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:159 build/C/man2/readdir.2:109
msgid "File descriptor does not refer to a directory."
msgstr ""

#.  SVr4 documents additional ENOLINK, EIO error conditions.
#. type: Plain text
#: build/C/man2/getdents.2:162
msgid "SVr4."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:168
msgid ""
"Glibc does not provide a wrapper for this system call; call it using "
"B<syscall>(2).  You will need to define the I<linux_dirent> structure "
"yourself."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:171
msgid "This call supersedes B<readdir>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:184
msgid ""
"The original Linux B<getdents>()  system call did not handle large file "
"systems and large file offsets.  Consequently, Linux 2.4 added "
"B<getdents64>(), with wider types for the I<d_ino> and I<d_off> fields "
"employed in the I<linux_dirent> structure."
msgstr ""

#. type: SH
#: build/C/man2/getdents.2:184 build/C/man3/scandir.3:148
#, no-wrap
msgid "EXAMPLE"
msgstr ""

#.  FIXME: This program uses the older getdents(0 system call
#.  and the structure with smaller field widths.
#. type: Plain text
#: build/C/man2/getdents.2:191
msgid ""
"The program below demonstrates the use of B<getdents>().  The following "
"output shows an example of what we see when running this program on an ext2 "
"directory:"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:204
#, no-wrap
msgid ""
"$B< ./a.out /testfs/>\n"
"--------------- nread=120 ---------------\n"
"i-node#  file type  d_reclen  d_off   d_name\n"
"       2  directory    16         12  .\n"
"       2  directory    16         24  ..\n"
"      11  directory    24         44  lost+found\n"
"      12  regular      16         56  a\n"
"  228929  directory    16         68  sub\n"
"   16353  directory    16         80  sub2\n"
"  130817  directory    16       4096  sub3\n"
msgstr ""

#. type: SS
#: build/C/man2/getdents.2:206
#, no-wrap
msgid "Program source"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:217
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>dirent.hE<gt>     /* Defines DT_* constants */\n"
"#include E<lt>fcntl.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>sys/stat.hE<gt>\n"
"#include E<lt>sys/syscall.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:220
#, no-wrap
msgid ""
"#define handle_error(msg) \\e\n"
"        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:227
#, no-wrap
msgid ""
"struct linux_dirent {\n"
"    long           d_ino;\n"
"    off_t          d_off;\n"
"    unsigned short d_reclen;\n"
"    char           d_name[];\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:229
#, no-wrap
msgid "#define BUF_SIZE 1024\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:238
#, no-wrap
msgid ""
"int\n"
"main(int argc, char *argv[])\n"
"{\n"
"    int fd, nread;\n"
"    char buf[BUF_SIZE];\n"
"    struct linux_dirent *d;\n"
"    int bpos;\n"
"    char d_type;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:242
#, no-wrap
msgid ""
"    fd = open(argc E<gt> 1 ? argv[1] : \".\", O_RDONLY | O_DIRECTORY);\n"
"    if (fd == -1)\n"
"        handle_error(\"open\");\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:247
#, no-wrap
msgid ""
"    for ( ; ; ) {\n"
"        nread = syscall(SYS_getdents, fd, buf, BUF_SIZE);\n"
"        if (nread == -1)\n"
"            handle_error(\"getdents\");\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:250
#, no-wrap
msgid ""
"        if (nread == 0)\n"
"            break;\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:269
#, no-wrap
msgid ""
"        printf(\"--------------- nread=%d ---------------\\en\", nread);\n"
"        printf(\"i-node#  file type  d_reclen  d_off   d_name\\en\");\n"
"        for (bpos = 0; bpos E<lt> nread;) {\n"
"            d = (struct linux_dirent *) (buf + bpos);\n"
"            printf(\"%8ld  \", d-E<gt>d_ino);\n"
"            d_type = *(buf + bpos + d-E<gt>d_reclen - 1);\n"
"            printf(\"%-10s \", (d_type == DT_REG) ?  \"regular\" :\n"
"                             (d_type == DT_DIR) ?  \"directory\" :\n"
"                             (d_type == DT_FIFO) ? \"FIFO\" :\n"
"                             (d_type == DT_SOCK) ? \"socket\" :\n"
"                             (d_type == DT_LNK) ?  \"symlink\" :\n"
"                             (d_type == DT_BLK) ?  \"block dev\" :\n"
"                             (d_type == DT_CHR) ?  \"char dev\" : "
"\"???\");\n"
"            printf(\"%4d %10lld  %s\\en\", d-E<gt>d_reclen,\n"
"                    (long long) d-E<gt>d_off, (char *) d-E<gt>d_name);\n"
"            bpos += d-E<gt>d_reclen;\n"
"        }\n"
"    }\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:272
#, no-wrap
msgid ""
"    exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/getdents.2:276
msgid "B<readdir>(2), B<readdir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/getdirentries.3:27
#, no-wrap
msgid "GETDIRENTRIES"
msgstr ""

#. type: TH
#: build/C/man3/getdirentries.3:27
#, no-wrap
msgid "2007-07-26"
msgstr ""

#. type: TH
#: build/C/man3/getdirentries.3:27 build/C/man3/opendir.3:30 build/C/man3/scandir.3:34
#, no-wrap
msgid "GNU"
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:30
msgid "getdirentries - get directory entries in a file system-independent format"
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:35
msgid ""
"B<ssize_t getdirentries(int >I<fd>B<, char *>I<buf>B<, size_t >I<nbytes> B<, "
"off_t *>I<basep>B<);>"
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:43
msgid "B<getdirentries>(): _BSD_SOURCE || _SVID_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:56
msgid ""
"Read directory entries from the directory specified by I<fd> into I<buf>.  "
"At most I<nbytes> are read.  Reading starts at offset I<*basep>, and "
"I<*basep> is updated with the new position after reading."
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:62
msgid ""
"B<getdirentries>()  returns the number of bytes read or zero when at the end "
"of the directory.  If an error occurs, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:64
msgid "See the Linux library source code for details."
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:72
msgid ""
"Not in POSIX.1-2001.  Present on the BSDs, and a few other systems.  Use "
"B<opendir>(3)  and B<readdir>(3)  instead."
msgstr ""

#. type: Plain text
#: build/C/man3/getdirentries.3:75
msgid "B<lseek>(2), B<open>(2)"
msgstr ""

#. type: TH
#: build/C/man3/opendir.3:30
#, no-wrap
msgid "OPENDIR"
msgstr ""

#. type: TH
#: build/C/man3/opendir.3:30
#, no-wrap
msgid "2010-06-20"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:33
msgid "opendir, fdopendir - open a directory"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:41
#, no-wrap
msgid ""
"B<DIR *opendir(const char *>I<name>B<);>\n"
"B<DIR *fdopendir(int >I<fd>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:49
msgid "B<fdopendir>():"
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:52
#, no-wrap
msgid "Since glibc 2.10:"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:55
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:55
#, no-wrap
msgid "Before glibc 2.10:"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:58
msgid "_GNU_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:67
msgid ""
"The B<opendir>()  function opens a directory stream corresponding to the "
"directory I<name>, and returns a pointer to the directory stream.  The "
"stream is positioned at the first entry in the directory."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:81
msgid ""
"The B<fdopendir>()  function is like B<opendir>(), but returns a directory "
"stream for the directory referred to by the open file descriptor I<fd>.  "
"After a successful call to B<fdopendir>(), I<fd> is used internally by the "
"implementation, and should not otherwise be used by the application."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:90
msgid ""
"The B<opendir>()  and B<fdopendir>()  functions return a pointer to the "
"directory stream.  On error, NULL is returned, and I<errno> is set "
"appropriately."
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:91
#, no-wrap
msgid "B<EACCES>"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:94
msgid "Permission denied."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:98
msgid "I<fd> is not a valid file descriptor opened for reading."
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:98
#, no-wrap
msgid "B<EMFILE>"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:101
msgid "Too many file descriptors in use by process."
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:101
#, no-wrap
msgid "B<ENFILE>"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:104
msgid "Too many files are currently open in the system."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:107
msgid "Directory does not exist, or I<name> is an empty string."
msgstr ""

#. type: TP
#: build/C/man3/opendir.3:107 build/C/man3/scandir.3:107
#, no-wrap
msgid "B<ENOMEM>"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:110 build/C/man3/scandir.3:110
msgid "Insufficient memory to complete the operation."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:113
msgid "I<name> is not a directory."
msgstr ""

#. type: SH
#: build/C/man3/opendir.3:113 build/C/man3/scandir.3:113 build/C/man3/scandirat.3:103
#, no-wrap
msgid "VERSIONS"
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:116
msgid "B<fdopendir>()  is available in glibc since version 2.4."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:121
msgid ""
"B<opendir>()  is present on SVr4, 4.3BSD, and specified in POSIX.1-2001.  "
"B<fdopendir>()  is specified in POSIX.1-2008."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:124
msgid ""
"The underlying file descriptor of the directory stream can be obtained using "
"B<dirfd>(3)."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:138
msgid ""
"The B<opendir>()  function sets the close-on-exec flag for the file "
"descriptor underlying the I<DIR *>.  The B<fdopendir>()  function leaves the "
"setting of the close-on-exec flag unchanged for the file descriptor, I<fd>.  "
"POSIX.1-200x leaves it unspecified whether a successful call to "
"B<fdopendir>()  will set the close-on-exec flag for the file descriptor, "
"I<fd>."
msgstr ""

#. type: Plain text
#: build/C/man3/opendir.3:147
msgid ""
"B<open>(2), B<closedir>(3), B<dirfd>(3), B<readdir>(3), B<rewinddir>(3), "
"B<scandir>(3), B<seekdir>(3), B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man2/readdir.2:28 build/C/man3/readdir.3:34
#, no-wrap
msgid "READDIR"
msgstr ""

#. type: TH
#: build/C/man2/readdir.2:28
#, no-wrap
msgid "2008-10-02"
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:31
msgid "readdir - read directory entry"
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:36
#, no-wrap
msgid ""
"B<int readdir(unsigned int >I<fd>B<, struct old_linux_dirent *>I<dirp>B<,>\n"
"B<            unsigned int >I<count>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:45
msgid ""
"This is not the function you are interested in.  Look at B<readdir>(3)  for "
"the POSIX conforming C library interface.  This page documents the bare "
"kernel system call interface, which is superseded by B<getdents>(2)."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:59
msgid ""
"B<readdir>()  reads one I<old_linux_dirent> structure from the directory "
"referred to by the file descriptor I<fd> into the buffer pointed to by "
"I<dirp>.  The argument I<count> is ignored; at most one I<old_linux_dirent> "
"structure is read."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:63
msgid "The I<old_linux_dirent> structure is declared as follows:"
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:72
#, no-wrap
msgid ""
"struct old_linux_dirent {\n"
"    long  d_ino;              /* inode number */\n"
"    off_t d_off;              /* offset to this I<old_linux_dirent> */\n"
"    unsigned short d_reclen;  /* length of this I<d_name> */\n"
"    char  d_name[NAME_MAX+1]; /* filename (null-terminated) */\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:86
msgid ""
"I<d_ino> is an inode number.  I<d_off> is the distance from the start of the "
"directory to this I<old_linux_dirent>.  I<d_reclen> is the size of "
"I<d_name>, not counting the terminating null byte.  I<d_name> is a "
"null-terminated filename."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:92
msgid ""
"On success, 1 is returned.  On end of directory, 0 is returned.  On error, "
"-1 is returned, and I<errno> is set appropriately."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:111
msgid "This system call is Linux-specific."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:117
msgid ""
"Glibc does not provide a wrapper for this system call; call it using "
"B<syscall>(2).  You will need to define the I<old_linux_dirent> structure "
"yourself."
msgstr ""

#. type: Plain text
#: build/C/man2/readdir.2:120
msgid "B<getdents>(2), B<readdir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/readdir.3:34
#, no-wrap
msgid "2010-09-10"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:37
msgid "readdir, readdir_r - read a directory"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:42
#, no-wrap
msgid "B<struct dirent *readdir(DIR *>I<dirp>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:45
#, no-wrap
msgid ""
"B<int readdir_r(DIR *>I<dirp>B<, struct dirent *>I<entry>B<, struct dirent "
"**>I<result>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:54
msgid "B<readdir_r>():"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:57
msgid ""
"_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
"|| _POSIX_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:67
msgid ""
"The B<readdir>()  function returns a pointer to a I<dirent> structure "
"representing the next directory entry in the directory stream pointed to by "
"I<dirp>.  It returns NULL on reaching the end of the directory stream or if "
"an error occurred."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:71
msgid "On Linux, the I<dirent> structure is defined as follows:"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:82
#, no-wrap
msgid ""
"struct dirent {\n"
"    ino_t          d_ino;       /* inode number */\n"
"    off_t          d_off;       /* offset to the next dirent */\n"
"    unsigned short d_reclen;    /* length of this record */\n"
"    unsigned char  d_type;      /* type of file; not supported\n"
"                                   by all file system types */\n"
"    char           d_name[256]; /* filename */\n"
"};\n"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:96
msgid ""
"The only fields in the I<dirent> structure that are mandated by POSIX.1 are: "
"I<d_name>[], of unspecified size, with at most B<NAME_MAX> characters "
"preceding the terminating null byte; and (as an XSI extension)  I<d_ino>.  "
"The other fields are unstandardized, and not present on all systems; see "
"NOTES below for some further details."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:102
msgid ""
"The data returned by B<readdir>()  may be overwritten by subsequent calls to "
"B<readdir>()  for the same directory stream."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:117
msgid ""
"The B<readdir_r>()  function is a reentrant version of B<readdir>().  It "
"reads the next directory entry from the directory stream I<dirp>, and "
"returns it in the caller-allocated buffer pointed to by I<entry>.  (See "
"NOTES for information on allocating this buffer.)  A pointer to the returned "
"item is placed in I<*result>; if the end of the directory stream was "
"encountered, then NULL is instead returned in I<*result>."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:132
msgid ""
"On success, B<readdir>()  returns a pointer to a I<dirent> structure.  (This "
"structure may be statically allocated; do not attempt to B<free>(3)  it.)  "
"If the end of the directory stream is reached, NULL is returned and I<errno> "
"is not changed.  If an error occurs, NULL is returned and I<errno> is set "
"appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:141
msgid ""
"The B<readdir_r>()  function returns 0 on success.  On error, it returns a "
"positive error number (listed under ERRORS).  If the end of the directory "
"stream is reached, B<readdir_r>()  returns 0, and returns NULL in "
"I<*result>."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:147 build/C/man3/rewinddir.3:51
msgid "SVr4, 4.3BSD, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:163
msgid ""
"Only the fields I<d_name> and I<d_ino> are specified in POSIX.1-2001.  The "
"remaining fields are available on many, but not all systems.  Under glibc, "
"programs can check for the availability of the fields not defined in POSIX.1 "
"by testing whether the macros B<_DIRENT_HAVE_D_NAMLEN>, "
"B<_DIRENT_HAVE_D_RECLEN>, B<_DIRENT_HAVE_D_OFF>, or B<_DIRENT_HAVE_D_TYPE> "
"are defined."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:176
msgid ""
"Other than Linux, the I<d_type> field is available mainly only on BSD "
"systems.  This field makes it possible to avoid the expense of calling "
"B<lstat>(2)  if further actions depend on the type of the file.  If the "
"B<_BSD_SOURCE> feature test macro is defined, then glibc defines the "
"following macro constants for the value returned in I<d_type>:"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:207
msgid ""
"If the file type could not be determined, the value B<DT_UNKNOWN> is "
"returned in I<d_type>."
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:226
msgid ""
"Since POSIX.1 does not specify the size of the I<d_name> field, and other "
"nonstandard fields may precede that field within the I<dirent> structure, "
"portable applications that use B<readdir_r>()  should allocate the buffer "
"whose address is passed in I<entry> as follows:"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:232
#, no-wrap
msgid ""
"len = offsetof(struct dirent, d_name) +\n"
"          pathconf(dirpath, _PC_NAME_MAX) + 1\n"
"entryp = malloc(len);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:239
msgid "(POSIX.1 requires that I<d_name> is the last field in a I<struct dirent>.)"
msgstr ""

#. type: Plain text
#: build/C/man3/readdir.3:251
msgid ""
"B<getdents>(2), B<read>(2), B<closedir>(3), B<dirfd>(3), B<ftw>(3), "
"B<offsetof>(3), B<opendir>(3), B<rewinddir>(3), B<scandir>(3), "
"B<seekdir>(3), B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/rewinddir.3:29
#, no-wrap
msgid "REWINDDIR"
msgstr ""

#. type: TH
#: build/C/man3/rewinddir.3:29
#, no-wrap
msgid "1995-06-11"
msgstr ""

#. type: Plain text
#: build/C/man3/rewinddir.3:32
msgid "rewinddir - reset directory stream"
msgstr ""

#. type: Plain text
#: build/C/man3/rewinddir.3:39
#, no-wrap
msgid "B<void rewinddir(DIR *>I<dirp>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/rewinddir.3:45
msgid ""
"The B<rewinddir>()  function resets the position of the directory stream "
"I<dirp> to the beginning of the directory."
msgstr ""

#. type: Plain text
#: build/C/man3/rewinddir.3:49
msgid "The B<rewinddir>()  function returns no value."
msgstr ""

#. type: Plain text
#: build/C/man3/rewinddir.3:58
msgid ""
"B<closedir>(3), B<opendir>(3), B<readdir>(3), B<scandir>(3), B<seekdir>(3), "
"B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/scandir.3:34
#, no-wrap
msgid "SCANDIR"
msgstr ""

#. type: TH
#: build/C/man3/scandir.3:34
#, no-wrap
msgid "2012-04-26"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:37
msgid "scandir, alphasort, versionsort - scan a directory for matching entries"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:42
#, no-wrap
msgid "B<int scandir(const char *>I<dirp>B<, struct dirent ***>I<namelist>B<,>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:45 build/C/man3/scandirat.3:43
#, no-wrap
msgid ""
"B<int (*>I<filter>B<)(const struct dirent *),>\n"
"B<int (*>I<compar>B<)(const struct dirent **, const struct dirent **));>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:48
#, no-wrap
msgid "B<int alphasort(const void *>I<a>B<, const void *>I<b>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:50
#, no-wrap
msgid "B<int versionsort(const void *>I<a>B<, const void *>I<b>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:60
msgid "B<scandir>(), B<alphasort>(): _BSD_SOURCE || _SVID_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:63
msgid "B<versionsort>(): _GNU_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:78
msgid ""
"The B<scandir>()  function scans the directory I<dirp>, calling I<filter>() "
"on each directory entry.  Entries for which I<filter>() returns nonzero are "
"stored in strings allocated via B<malloc>(3), sorted using B<qsort>(3)  with "
"the comparison function I<compar>(), and collected in array I<namelist> "
"which is allocated via B<malloc>(3).  If I<filter> is NULL, all entries are "
"selected."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:90
msgid ""
"The B<alphasort>()  and B<versionsort>()  functions can be used as the "
"comparison function I<compar>().  The former sorts directory entries using "
"B<strcoll>(3), the latter using B<strverscmp>(3)  on the strings "
"I<(*a)-E<gt>d_name> and I<(*b)-E<gt>d_name>."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:95
msgid ""
"The B<scandir>()  function returns the number of directory entries selected "
"or -1 if an error occurs."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:103
msgid ""
"The B<alphasort>()  and B<versionsort>()  functions return an integer less "
"than, equal to, or greater than zero if the first argument is considered to "
"be respectively less than, equal to, or greater than the second."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:107
msgid "The path in I<dirp> does not exist."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:113
msgid "The path in I<dirp> is not a directory."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:116
msgid "B<versionsort>()  was added to glibc in version 2.1."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:123
msgid ""
"B<alphasort>()  and B<scandir>()  are specified in POSIX.1-2008, and are "
"widely available.  B<versionsort>()  is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:130
msgid ""
"The functions B<scandir>()  and B<alphasort>()  are from 4.3BSD, and have "
"been available under Linux since libc4.  Libc4 and libc5 use the more "
"precise prototype"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:134
#, no-wrap
msgid ""
"    int alphasort(const struct dirent ** a,\n"
"                  const struct dirent **b);\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:137
msgid "but glibc 2.0 returns to the imprecise BSD prototype."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:141
msgid ""
"The function B<versionsort>()  is a GNU extension, available since glibc "
"2.1."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:148
msgid ""
"Since glibc 2.1, B<alphasort>()  calls B<strcoll>(3); earlier it used "
"B<strcmp>(3)."
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:153
#, no-wrap
msgid ""
"#define _SVID_SOURCE\n"
"/* print files in current directory in reverse order */\n"
"#include E<lt>dirent.hE<gt>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:159
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
"    struct dirent **namelist;\n"
"    int n;\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:171
#, no-wrap
msgid ""
"    n = scandir(\".\", &namelist, NULL, alphasort);\n"
"    if (n E<lt> 0)\n"
"        perror(\"scandir\");\n"
"    else {\n"
"        while (n--) {\n"
"            printf(\"%s\\en\", namelist[n]-E<gt>d_name);\n"
"            free(namelist[n]);\n"
"        }\n"
"        free(namelist);\n"
"    }\n"
"}\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandir.3:184
msgid ""
"B<closedir>(3), B<fnmatch>(3), B<opendir>(3), B<readdir>(3), "
"B<rewinddir>(3), B<scandirat>(3), B<seekdir>(3), B<strcmp>(3), "
"B<strcoll>(3), B<strverscmp>(3), B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/scandirat.3:26
#, no-wrap
msgid "SCANDIRAT"
msgstr ""

#. type: TH
#: build/C/man3/scandirat.3:26
#, no-wrap
msgid "2012-03-17"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:29
msgid "scandirat - scan a directory relative to a directory file descriptor"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:32
#, no-wrap
msgid "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:35
#, no-wrap
msgid ""
"B<#include E<lt>fcntl.hE<gt>>          /* Definition of AT_* constants */\n"
"B<#include E<lt>dirent.hE<gt>>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:39
msgid ""
"B<int scandirat(int >I<dirfd>B<, const char *>I<dirp>B<,> B<struct dirent "
"***>I<namelist>B<,>"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:51
msgid ""
"The B<scandirat>()  system call operates in exactly the same way as "
"B<scandir>(3), except for the differences described in this manual page."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:61
msgid ""
"If the pathname given in I<dirp> is relative, then it is interpreted "
"relative to the directory referred to by the file descriptor I<dirfd> "
"(rather than relative to the current working directory of the calling "
"process, as is done by B<scandir>(3)  for a relative pathname)."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:73
msgid ""
"If I<dirp> is relative and I<dirfd> is the special value B<AT_FDCWD>, then "
"I<dirp> is interpreted relative to the current working directory of the "
"calling process (like B<scandir>(3))."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:79
msgid "If I<dirp> is absolute, then I<dirfd> is ignored."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:86
msgid ""
"On success, B<scandirat>()  returns the number of directory entries "
"selected.  On error, -1 is returned and I<errno> is set to indicate the "
"error."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:93
msgid ""
"The same errors that occur for B<scandir>(3)  can also occur for "
"B<scandirat>().  The following additional errors can occur for "
"B<scandirat>():"
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:97
msgid "I<dirfd> is not a valid file descriptor."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:103
msgid ""
"I<dirp> is a relative path and I<dirfd> is a file descriptor referring to a "
"file other than a directory."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:106
msgid "B<scandirat>()  was added to glibc in version 2.15."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:108
msgid "This function is a GNU extension."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:113
msgid "See B<openat>(2)  for an explanation of the need for B<scandirat>()."
msgstr ""

#. type: Plain text
#: build/C/man3/scandirat.3:117
msgid "B<openat>(2), B<scandir>(3), B<path_resolution>(7)"
msgstr ""

#. type: TH
#: build/C/man3/seekdir.3:28
#, no-wrap
msgid "SEEKDIR"
msgstr ""

#. type: TH
#: build/C/man3/seekdir.3:28 build/C/man3/telldir.3:28
#, no-wrap
msgid "2009-03-11"
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:32
msgid ""
"seekdir - set the position of the next readdir() call in the directory "
"stream."
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:37
#, no-wrap
msgid "B<void seekdir(DIR *>I<dirp>B<, long >I<offset>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:46
msgid "B<seekdir>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:58
msgid ""
"The B<seekdir>()  function sets the location in the directory stream from "
"which the next B<readdir>(2)  call will start.  B<seekdir>()  should be used "
"with an I<offset> returned by B<telldir>(3)."
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:62
msgid "The B<seekdir>()  function returns no value."
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:64 build/C/man3/telldir.3:64
msgid "4.3BSD, POSIX.1-2001."
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:72
msgid ""
"In glibc up to version 2.1.1, the type of the I<offset> argument was "
"I<off_t>.  POSIX.1-2001 specifies I<long>, and this is the type used since "
"glibc 2.1.2."
msgstr ""

#. type: Plain text
#: build/C/man3/seekdir.3:80
msgid ""
"B<lseek>(2), B<closedir>(3), B<opendir>(3), B<readdir>(3), B<rewinddir>(3), "
"B<scandir>(3), B<telldir>(3)"
msgstr ""

#. type: TH
#: build/C/man3/telldir.3:28
#, no-wrap
msgid "TELLDIR"
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:31
msgid "telldir - return current location in directory stream"
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:36
#, no-wrap
msgid "B<long telldir(DIR *>I<dirp>B<);>\n"
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:45
msgid "B<telldir>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE"
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:50
msgid ""
"The B<telldir>()  function returns the current location associated with the "
"directory stream I<dirp>."
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:58
msgid ""
"On success, the B<telldir>()  function returns the current location in the "
"directory stream.  On error, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:72
msgid ""
"In glibc up to version 2.1.1, the return type of B<telldir>()  was "
"I<off_t>.  POSIX.1-2001 specifies I<long>, and this is the type used since "
"glibc 2.1.2."
msgstr ""

#. type: Plain text
#: build/C/man3/telldir.3:79
msgid ""
"B<closedir>(3), B<opendir>(3), B<readdir>(3), B<rewinddir>(3), "
"B<scandir>(3), B<seekdir>(3)"
msgstr ""
