1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2009
Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
[[!meta title="dir_readdir"]]
routine dir_readdir (
dir: file_t;
RPT
out data: data_t, dealloc[];
entry: int;
nentries: int;
bufsiz: vm_size_t;
out amount: int);
Read entries from the directory. Each entry is identified by an index number
starting at 0 and running through the file. This call fetches `nentries` (or
any convenient number if `nentries` is -1) entries starting at `entry`,
returning a series of struct dirent in `data`.
Note that due to the variable-size `d_name` field, `d_reclen` has to be used to
jump from one struct dirent to the other.
The number of entries
successfully read is returned in `amount`. If `entry` is bigger than the index
of the last entry, then 0 is returned in `amount`. If `bufsize` is nonzero,
never return more than `bufsize` bytes of data regardless.
|