1explain_gethostbyname(3)   Library Functions Manual   explain_gethostbyname(3)
2
3
4

NAME

6       explain_gethostbyname - explain gethostbyname(3) errors
7

SYNOPSIS

9       #include <libexplain/gethostbyname.h>
10       const char *explain_gethostbyname(const char *name);
11       const char *explain_errno_gethostbyname(int errnum, const char *name);
12       void explain_message_gethostbyname(char *message, int message_size,
13       const char *name);
14       void explain_message_errno_gethostbyname(char *message, int mes‐
15       sage_size, int errnum, const char *name);
16

DESCRIPTION

18       These  functions may be used to obtain explanations for errors returned
19       by the gethostbyname(3) system call.
20
21   explain_gethostbyname
22       const char *explain_gethostbyname(const char *name);
23
24       The explain_gethostbyname function is used to obtain an explanation  of
25       an  error  returned  by the gethostbyname(3) system call. The least the
26       message will contain is the value of strerror(errno),  but  usually  it
27       will do much better, and indicate the underlying cause in more detail.
28
29       The  errno global variable will be used to obtain the error value to be
30       decoded.
31
32       name    The original name, exactly as passed  to  the  gethostbyname(3)
33               system call.
34
35       Returns:
36               The message explaining the error. This message buffer is shared
37               by all libexplain functions which do not  supply  a  buffer  in
38               their argument list.  This will be overwritten by the next call
39               to any libexplain function which shares this buffer,  including
40               other threads.
41
42       Note: This function is not thread safe, because it shares a return buf‐
43       fer across all threads, and many other functions in this library.
44
45       Example: This function is intended to be used in a fashion  similar  to
46       the following example:
47              struct hostent *result = gethostbyname(name);
48              if (!result)
49              {
50                  fprintf(stderr, "%s\n", explain_gethostbyname(name));
51                  exit(EXIT_FAILURE);
52              }
53
54       The  above  code example is available pre-packaged as the explain_geth‐
55       ostbyname_or_die(3) function.
56
57   explain_errno_gethostbyname
58       const char *explain_errno_gethostbyname(int errnum, const char *name);
59
60       The explain_errno_gethostbyname function is used to obtain an  explana‐
61       tion  of  an  error  returned  by the gethostbyname(3) system call. The
62       least the message will contain is the  value  of  strerror(errno),  but
63       usually  it  will  do much better, and indicate the underlying cause in
64       more detail.
65
66       errnum  The error value to be decoded, usually obtained from the  errno
67               global  variable  just  before this function is called. This is
68               necessary if you need to call any code between the system  call
69               to  be explained and this function, because many libc functions
70               will alter the value of errno.
71
72       name    The original name, exactly as passed  to  the  gethostbyname(3)
73               system call.
74
75       Returns:
76               The message explaining the error. This message buffer is shared
77               by all libexplain functions which do not  supply  a  buffer  in
78               their argument list.  This will be overwritten by the next call
79               to any libexplain function which shares this buffer,  including
80               other threads.
81
82       Note: This function is not thread safe, because it shares a return buf‐
83       fer across all threads, and many other functions in this library.
84
85       Example: This function is intended to be used in a fashion  similar  to
86       the following example:
87              struct hostent *result = gethostbyname(name);
88              if (!result)
89              {
90                  int err = errno;
91                  fprintf(stderr, "%s\n", explain_errno_gethostbyname(err,
92                  name));
93                  exit(EXIT_FAILURE);
94              }
95
96       The above code example is available pre-packaged as  the  explain_geth‐
97       ostbyname_or_die(3) function.
98
99   explain_message_gethostbyname
100       void explain_message_gethostbyname(char *message, int message_size,
101       const char *name);
102
103       The explain_message_gethostbyname function is used to obtain an  expla‐
104       nation  of  an  error returned by the gethostbyname(3) system call. The
105       least the message will contain is the  value  of  strerror(errno),  but
106       usually  it  will  do much better, and indicate the underlying cause in
107       more detail.
108
109       The errno global variable will be used to obtain the error value to  be
110       decoded.
111
112       message The location in which to store the returned message. If a suit‐
113               able message return buffer is supplied, this function is thread
114               safe.
115
116       message_size
117               The  size  in  bytes  of  the  location  in  which to store the
118               returned message.
119
120       name    The original name, exactly as passed  to  the  gethostbyname(3)
121               system call.
122
123       Example:  This  function is intended to be used in a fashion similar to
124       the following example:
125              struct hostent *result = gethostbyname(name);
126              if (!result)
127              {
128                  char message[3000];
129                  explain_message_gethostbyname(message, sizeof(message),
130                  name);
131                  fprintf(stderr, "%s\n", message);
132                  exit(EXIT_FAILURE);
133              }
134
135       The  above  code example is available pre-packaged as the explain_geth‐
136       ostbyname_or_die(3) function.
137
138   explain_message_errno_gethostbyname
139       void explain_message_errno_gethostbyname(char *message, int mes‐
140       sage_size, int errnum, const char *name);
141
142       The  explain_message_errno_gethostbyname  function is used to obtain an
143       explanation of an error returned by the gethostbyname(3)  system  call.
144       The least the message will contain is the value of strerror(errno), but
145       usually it will do much better, and indicate the  underlying  cause  in
146       more detail.
147
148       message The location in which to store the returned message. If a suit‐
149               able message return buffer is supplied, this function is thread
150               safe.
151
152       message_size
153               The  size  in  bytes  of  the  location  in  which to store the
154               returned message.
155
156       errnum  The error value to be decoded, usually obtained from the  errno
157               global  variable  just  before this function is called. This is
158               necessary if you need to call any code between the system  call
159               to  be explained and this function, because many libc functions
160               will alter the value of errno.
161
162       name    The original name, exactly as passed  to  the  gethostbyname(3)
163               system call.
164
165       Example:  This  function is intended to be used in a fashion similar to
166       the following example:
167              struct hostent *result = gethostbyname(name);
168              if (!result)
169              {
170                  int err = errno;
171                  char message[3000];
172                  explain_message_errno_gethostbyname(message, sizeof(mes‐
173                  sage), err, name);
174                  fprintf(stderr, "%s\n", message);
175                  exit(EXIT_FAILURE);
176              }
177
178       The  above  code example is available pre-packaged as the explain_geth‐
179       ostbyname_or_die(3) function.
180

SEE ALSO

182       gethostbyname(3)
183               get host address given host name
184
185       explain_gethostbyname_or_die(3)
186               get host address given host name and report errors
187
189       libexplain version 1.4
190       Copyright (C) 2013 Peter Miller
191
192
193
194                                                      explain_gethostbyname(3)
Impressum