1 | .\" Copyright (c) 2006,2008 Joseph Koshy. All rights reserved. |
---|
2 | .\" |
---|
3 | .\" Redistribution and use in source and binary forms, with or without |
---|
4 | .\" modification, are permitted provided that the following conditions |
---|
5 | .\" are met: |
---|
6 | .\" 1. Redistributions of source code must retain the above copyright |
---|
7 | .\" notice, this list of conditions and the following disclaimer. |
---|
8 | .\" 2. Redistributions in binary form must reproduce the above copyright |
---|
9 | .\" notice, this list of conditions and the following disclaimer in the |
---|
10 | .\" documentation and/or other materials provided with the distribution. |
---|
11 | .\" |
---|
12 | .\" This software is provided by Joseph Koshy ``as is'' and |
---|
13 | .\" any express or implied warranties, including, but not limited to, the |
---|
14 | .\" implied warranties of merchantability and fitness for a particular purpose |
---|
15 | .\" are disclaimed. in no event shall Joseph Koshy be liable |
---|
16 | .\" for any direct, indirect, incidental, special, exemplary, or consequential |
---|
17 | .\" damages (including, but not limited to, procurement of substitute goods |
---|
18 | .\" or services; loss of use, data, or profits; or business interruption) |
---|
19 | .\" however caused and on any theory of liability, whether in contract, strict |
---|
20 | .\" liability, or tort (including negligence or otherwise) arising in any way |
---|
21 | .\" out of the use of this software, even if advised of the possibility of |
---|
22 | .\" such damage. |
---|
23 | .\" |
---|
24 | .\" $Id: elf_next.3 189 2008-07-20 10:38:08Z jkoshy $ |
---|
25 | .\" |
---|
26 | .Dd June 17, 2006 |
---|
27 | .Os |
---|
28 | .Dt ELF_NEXT 3 |
---|
29 | .Sh NAME |
---|
30 | .Nm elf_next |
---|
31 | .Nd provide sequential access to the next archive member |
---|
32 | .Sh LIBRARY |
---|
33 | .Lb libelf |
---|
34 | .Sh SYNOPSIS |
---|
35 | .In libelf.h |
---|
36 | .Ft Elf_Cmd |
---|
37 | .Fn elf_next "Elf *elf" |
---|
38 | .Sh DESCRIPTION |
---|
39 | The |
---|
40 | .Fn elf_next |
---|
41 | function causes the ELF archive descriptor corresponding to argument |
---|
42 | .Ar elf |
---|
43 | to be adjusted to provide access to the next member in |
---|
44 | the archive on a subsequent call to |
---|
45 | .Fn elf_begin . |
---|
46 | .Pp |
---|
47 | The return value of |
---|
48 | .Fn elf_next |
---|
49 | is suitable for use in a loop invoking |
---|
50 | .Fn elf_begin . |
---|
51 | .Sh RETURN VALUES |
---|
52 | If successful, function |
---|
53 | .Fn elf_next |
---|
54 | returns the value |
---|
55 | .Dv ELF_C_READ . |
---|
56 | Otherwise, if argument |
---|
57 | .Ar elf |
---|
58 | was not associated with an archive, or if it was |
---|
59 | .Dv NULL , |
---|
60 | or if any other error occurred, the value |
---|
61 | .Dv ELF_C_NULL |
---|
62 | is returned. |
---|
63 | .Sh EXAMPLES |
---|
64 | To process all the members of an archive use: |
---|
65 | .Bd -literal -offset indent |
---|
66 | Elf_Cmd cmd; |
---|
67 | Elf *archive, *e; |
---|
68 | \&... |
---|
69 | cmd = ELF_C_READ; |
---|
70 | archive = elf_begin(fd, cmd, NULL); |
---|
71 | while ((e = elf_begin(fd, cmd, archive)) != (Elf *) 0) |
---|
72 | { |
---|
73 | ... process `e' here ... |
---|
74 | |
---|
75 | cmd = elf_next(e); |
---|
76 | elf_end(e); |
---|
77 | } |
---|
78 | elf_end(archive); |
---|
79 | .Ed |
---|
80 | .Sh ERRORS |
---|
81 | Function |
---|
82 | .Fn elf_next |
---|
83 | may fail with the following error: |
---|
84 | .Bl -tag -width "[ELF_E_RESOURCE]" |
---|
85 | .It Bq Er ELF_E_ARGUMENT |
---|
86 | Argument |
---|
87 | .Ar elf |
---|
88 | was not associated with a containing |
---|
89 | .Xr ar 1 |
---|
90 | archive. |
---|
91 | .El |
---|
92 | .Sh SEE ALSO |
---|
93 | .Xr elf 3 , |
---|
94 | .Xr elf_begin 3 , |
---|
95 | .Xr elf_end 3 , |
---|
96 | .Xr elf_rand 3 |
---|