libiberty/ChangeLog:
[deliverable/binutils-gdb.git] / libiberty / functions.texi
1 @c Automatically generated from *.c and others (the comments before
2 @c each entry tell you which file and where in that file). DO NOT EDIT!
3 @c Edit the *.c files, configure with --enable-maintainer-mode,
4 @c and let gather-docs build you a new copy.
5
6 @c alloca.c:26
7 @deftypefn Replacement void* alloca (size_t @var{size})
8
9 This function allocates memory which will be automatically reclaimed
10 after the procedure exits. The @libib{} implementation does not free
11 the memory immediately but will do so eventually during subsequent
12 calls to this function. Memory is allocated using @code{xmalloc} under
13 normal circumstances.
14
15 The header file @file{alloca-conf.h} can be used in conjunction with the
16 GNU Autoconf test @code{AC_FUNC_ALLOCA} to test for and properly make
17 available this function. The @code{AC_FUNC_ALLOCA} test requires that
18 client code use a block of preprocessor code to be safe (see the Autoconf
19 manual for more); this header incorporates that logic and more, including
20 the possibility of a GCC built-in function.
21
22 @end deftypefn
23
24 @c asprintf.c:33
25 @deftypefn Extension int asprintf (char **@var{resptr}, const char *@var{format}, ...)
26
27 Like @code{sprintf}, but instead of passing a pointer to a buffer, you
28 pass a pointer to a pointer. This function will compute the size of
29 the buffer needed, allocate memory with @code{malloc}, and store a
30 pointer to the allocated memory in @code{*@var{resptr}}. The value
31 returned is the same as @code{sprintf} would return. If memory could
32 not be allocated, zero is returned and @code{NULL} is stored in
33 @code{*@var{resptr}}.
34
35 @end deftypefn
36
37 @c atexit.c:6
38 @deftypefn Supplemental int atexit (void (*@var{f})())
39
40 Causes function @var{f} to be called at exit. Returns 0.
41
42 @end deftypefn
43
44 @c basename.c:6
45 @deftypefn Supplemental char* basename (const char *@var{name})
46
47 Returns a pointer to the last component of pathname @var{name}.
48 Behavior is undefined if the pathname ends in a directory separator.
49
50 @end deftypefn
51
52 @c bcmp.c:6
53 @deftypefn Supplemental int bcmp (char *@var{x}, char *@var{y}, int @var{count})
54
55 Compares the first @var{count} bytes of two areas of memory. Returns
56 zero if they are the same, nonzero otherwise. Returns zero if
57 @var{count} is zero. A nonzero result only indicates a difference,
58 it does not indicate any sorting order (say, by having a positive
59 result mean @var{x} sorts before @var{y}).
60
61 @end deftypefn
62
63 @c bcopy.c:3
64 @deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length})
65
66 Copies @var{length} bytes from memory region @var{in} to region
67 @var{out}. The use of @code{bcopy} is deprecated in new programs.
68
69 @end deftypefn
70
71 @c bsearch.c:33
72 @deftypefn Supplemental void* bsearch (const void *@var{key}, const void *@var{base}, size_t @var{nmemb}, size_t @var{size}, int (*@var{compar})(const void *, const void *))
73
74 Performs a search over an array of @var{nmemb} elements pointed to by
75 @var{base} for a member that matches the object pointed to by @var{key}.
76 The size of each member is specified by @var{size}. The array contents
77 should be sorted in ascending order according to the @var{compar}
78 comparison function. This routine should take two arguments pointing to
79 the @var{key} and to an array member, in that order, and should return an
80 integer less than, equal to, or greater than zero if the @var{key} object
81 is respectively less than, matching, or greater than the array member.
82
83 @end deftypefn
84
85 @c argv.c:139
86 @deftypefn Extension char** buildargv (char *@var{sp})
87
88 Given a pointer to a string, parse the string extracting fields
89 separated by whitespace and optionally enclosed within either single
90 or double quotes (which are stripped off), and build a vector of
91 pointers to copies of the string for each field. The input string
92 remains unchanged. The last element of the vector is followed by a
93 @code{NULL} element.
94
95 All of the memory for the pointer array and copies of the string
96 is obtained from @code{malloc}. All of the memory can be returned to the
97 system with the single function call @code{freeargv}, which takes the
98 returned result of @code{buildargv}, as it's argument.
99
100 Returns a pointer to the argument vector if successful. Returns
101 @code{NULL} if @var{sp} is @code{NULL} or if there is insufficient
102 memory to complete building the argument vector.
103
104 If the input is a null string (as opposed to a @code{NULL} pointer),
105 then buildarg returns an argument vector that has one arg, a null
106 string.
107
108 @end deftypefn
109
110 @c bzero.c:6
111 @deftypefn Supplemental void bzero (char *@var{mem}, int @var{count})
112
113 Zeros @var{count} bytes starting at @var{mem}. Use of this function
114 is deprecated in favor of @code{memset}.
115
116 @end deftypefn
117
118 @c calloc.c:6
119 @deftypefn Supplemental void* calloc (size_t @var{nelem}, size_t @var{elsize})
120
121 Uses @code{malloc} to allocate storage for @var{nelem} objects of
122 @var{elsize} bytes each, then zeros the memory.
123
124 @end deftypefn
125
126 @c choose-temp.c:42
127 @deftypefn Extension char* choose_temp_base (void)
128
129 Return a prefix for temporary file names or @code{NULL} if unable to
130 find one. The current directory is chosen if all else fails so the
131 program is exited if a temporary directory can't be found (@code{mktemp}
132 fails). The buffer for the result is obtained with @code{xmalloc}.
133
134 This function is provided for backwards compatability only. Its use is
135 not recommended.
136
137 @end deftypefn
138
139 @c make-temp-file.c:88
140 @deftypefn Replacement char* choose_tmpdir ()
141
142 Returns a pointer to a directory path suitable for creating temporary
143 files in.
144
145 @end deftypefn
146
147 @c clock.c:27
148 @deftypefn Supplemental long clock (void)
149
150 Returns an approximation of the CPU time used by the process as a
151 @code{clock_t}; divide this number by @samp{CLOCKS_PER_SEC} to get the
152 number of seconds used.
153
154 @end deftypefn
155
156 @c concat.c:24
157 @deftypefn Extension char* concat (const char *@var{s1}, const char *@var{s2}, @dots{}, @code{NULL})
158
159 Concatenate zero or more of strings and return the result in freshly
160 @code{xmalloc}ed memory. Returns @code{NULL} if insufficient memory is
161 available. The argument list is terminated by the first @code{NULL}
162 pointer encountered. Pointers to empty strings are ignored.
163
164 @end deftypefn
165
166 @c argv.c:65
167 @deftypefn Extension char** dupargv (char **@var{vector})
168
169 Duplicate an argument vector. Simply scans through @var{vector},
170 duplicating each argument until the terminating @code{NULL} is found.
171 Returns a pointer to the argument vector if successful. Returns
172 @code{NULL} if there is insufficient memory to complete building the
173 argument vector.
174
175 @end deftypefn
176
177 @c strerror.c:566
178 @deftypefn Extension int errno_max (void)
179
180 Returns the maximum @code{errno} value for which a corresponding
181 symbolic name or message is available. Note that in the case where we
182 use the @code{sys_errlist} supplied by the system, it is possible for
183 there to be more symbolic names than messages, or vice versa. In
184 fact, the manual page for @code{perror(3C)} explicitly warns that one
185 should check the size of the table (@code{sys_nerr}) before indexing
186 it, since new error codes may be added to the system before they are
187 added to the table. Thus @code{sys_nerr} might be smaller than value
188 implied by the largest @code{errno} value defined in @code{<errno.h>}.
189
190 We return the maximum value that can be used to obtain a meaningful
191 symbolic name or message.
192
193 @end deftypefn
194
195 @c fdmatch.c:23
196 @deftypefn Extension int fdmatch (int @var{fd1}, int @var{fd2})
197
198 Check to see if two open file descriptors refer to the same file.
199 This is useful, for example, when we have an open file descriptor for
200 an unnamed file, and the name of a file that we believe to correspond
201 to that fd. This can happen when we are exec'd with an already open
202 file (@code{stdout} for example) or from the SVR4 @file{/proc} calls
203 that return open file descriptors for mapped address spaces. All we
204 have to do is open the file by name and check the two file descriptors
205 for a match, which is done by comparing major and minor device numbers
206 and inode numbers.
207
208 @end deftypefn
209
210 @c ffs.c:3
211 @deftypefn Supplemental int ffs (int @var{valu})
212
213 Find the first (least significant) bit set in @var{valu}. Bits are
214 numbered from right to left, starting with bit 1 (corresponding to the
215 value 1). If @var{valu} is zero, zero is returned.
216
217 @end deftypefn
218
219 @c fnmatch.txh:1
220 @deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags})
221
222 Matches @var{string} against @var{pattern}, returning zero if it
223 matches, @code{FNM_NOMATCH} if not. @var{pattern} may contain the
224 wildcards @code{?} to match any one character, @code{*} to match any
225 zero or more characters, or a set of alternate characters in square
226 brackets, like @samp{[a-gt8]}, which match one character (@code{a}
227 through @code{g}, or @code{t}, or @code{8}, in this example) if that one
228 character is in the set. A set may be inverted (i.e., match anything
229 except what's in the set) by giving @code{^} or @code{!} as the first
230 character in the set. To include those characters in the set, list them
231 as anything other than the first character of the set. To include a
232 dash in the set, list it last in the set. A backslash character makes
233 the following character not special, so for example you could match
234 against a literal asterisk with @samp{\*}. To match a literal
235 backslash, use @samp{\\}.
236
237 @code{flags} controls various aspects of the matching process, and is a
238 boolean OR of zero or more of the following values (defined in
239 @code{<fnmatch.h>}):
240
241 @table @code
242
243 @item FNM_PATHNAME
244 @itemx FNM_FILE_NAME
245 @var{string} is assumed to be a path name. No wildcard will ever match
246 @code{/}.
247
248 @item FNM_NOESCAPE
249 Do not interpret backslashes as quoting the following special character.
250
251 @item FNM_PERIOD
252 A leading period (at the beginning of @var{string}, or if
253 @code{FNM_PATHNAME} after a slash) is not matched by @code{*} or
254 @code{?} but must be matched explicitly.
255
256 @item FNM_LEADING_DIR
257 Means that @var{string} also matches @var{pattern} if some initial part
258 of @var{string} matches, and is followed by @code{/} and zero or more
259 characters. For example, @samp{foo*} would match either @samp{foobar}
260 or @samp{foobar/grill}.
261
262 @item FNM_CASEFOLD
263 Ignores case when performing the comparison.
264
265 @end table
266
267 @end deftypefn
268
269 @c argv.c:111
270 @deftypefn Extension void freeargv (char **@var{vector})
271
272 Free an argument vector that was built using @code{buildargv}. Simply
273 scans through @var{vector}, freeing the memory for each argument until
274 the terminating @code{NULL} is found, and then frees @var{vector}
275 itself.
276
277 @end deftypefn
278
279 @c getruntime.c:82
280 @deftypefn Replacement long get_run_time (void)
281
282 Returns the time used so far, in microseconds. If possible, this is
283 the time used by this process, else it is the elapsed time since the
284 process started.
285
286 @end deftypefn
287
288 @c getcwd.c:6
289 @deftypefn Supplemental char* getcwd (char *@var{pathname}, int @var{len})
290
291 Copy the absolute pathname for the current working directory into
292 @var{pathname}, which is assumed to point to a buffer of at least
293 @var{len} bytes, and return a pointer to the buffer. If the current
294 directory's path doesn't fit in @var{len} characters, the result is
295 @code{NULL} and @code{errno} is set. If @var{pathname} is a null pointer,
296 @code{getcwd} will obtain @var{len} bytes of space using
297 @code{malloc}.
298
299 @end deftypefn
300
301 @c getpagesize.c:5
302 @deftypefn Supplemental int getpagesize (void)
303
304 Returns the number of bytes in a page of memory. This is the
305 granularity of many of the system memory management routines. No
306 guarantee is made as to whether or not it is the same as the basic
307 memory management hardware page size.
308
309 @end deftypefn
310
311 @c getpwd.c:5
312 @deftypefn Supplemental char* getpwd (void)
313
314 Returns the current working directory. This implementation caches the
315 result on the assumption that the process will not call @code{chdir}
316 between calls to @code{getpwd}.
317
318 @end deftypefn
319
320 @c hex.c:25
321 @deftypefn Extension void hex_init (void)
322
323 Initializes the array mapping the current character set to
324 corresponding hex values. This function must be called before any
325 call to @code{hex_p} or @code{hex_value}. If you fail to call it, a
326 default ASCII-based table will normally be used on ASCII systems.
327
328 @end deftypefn
329
330 @c hex.c:34
331 @deftypefn Extension int hex_p (int @var{c})
332
333 Evaluates to non-zero if the given character is a valid hex character,
334 or zero if it is not. Note that the value you pass will be cast to
335 @code{unsigned char} within the macro.
336
337 @end deftypefn
338
339 @c hex.c:42
340 @deftypefn Extension unsigned int hex_value (int @var{c})
341
342 Returns the numeric equivalent of the given character when interpreted
343 as a hexidecimal digit. The result is undefined if you pass an
344 invalid hex digit. Note that the value you pass will be cast to
345 @code{unsigned char} within the macro.
346
347 The @code{hex_value} macro returns @code{unsigned int}, rather than
348 signed @code{int}, to make it easier to use in parsing addresses from
349 hex dump files: a signed @code{int} would be sign-extended when
350 converted to a wider unsigned type --- like @code{bfd_vma}, on some
351 systems.
352
353 @end deftypefn
354
355 @c index.c:5
356 @deftypefn Supplemental char* index (char *@var{s}, int @var{c})
357
358 Returns a pointer to the first occurrence of the character @var{c} in
359 the string @var{s}, or @code{NULL} if not found. The use of @code{index} is
360 deprecated in new programs in favor of @code{strchr}.
361
362 @end deftypefn
363
364 @c insque.c:6
365 @deftypefn Supplemental void insque (struct qelem *@var{elem}, struct qelem *@var{pred})
366 @deftypefnx Supplemental void remque (struct qelem *@var{elem})
367
368 Routines to manipulate queues built from doubly linked lists. The
369 @code{insque} routine inserts @var{elem} in the queue immediately
370 after @var{pred}. The @code{remque} routine removes @var{elem} from
371 its containing queue. These routines expect to be passed pointers to
372 structures which have as their first members a forward pointer and a
373 back pointer, like this prototype (although no prototype is provided):
374
375 @example
376 struct qelem @{
377 struct qelem *q_forw;
378 struct qelem *q_back;
379 char q_data[];
380 @};
381 @end example
382
383 @end deftypefn
384
385 @c lbasename.c:23
386 @deftypefn Replacement {const char*} lbasename (const char *@var{name})
387
388 Given a pointer to a string containing a typical pathname
389 (@samp{/usr/src/cmd/ls/ls.c} for example), returns a pointer to the
390 last component of the pathname (@samp{ls.c} in this case). The
391 returned pointer is guaranteed to lie within the original
392 string. This latter fact is not true of many vendor C
393 libraries, which return special strings or modify the passed
394 strings for particular input.
395
396 In particular, the empty string returns the same empty string,
397 and a path ending in @code{/} returns the empty string after it.
398
399 @end deftypefn
400
401 @c lrealpath.c:25
402 @deftypefn Replacement {const char*} lrealpath (const char *@var{name})
403
404 Given a pointer to a string containing a pathname, returns a canonical
405 version of the filename. Symlinks will be resolved, and ``.'' and ``..''
406 components will be simplified. The returned value will be allocated using
407 @code{malloc}, or @code{NULL} will be returned on a memory allocation error.
408
409 @end deftypefn
410
411 @c make-relative-prefix.c:24
412 @deftypefn Extension {const char*} make_relative_prefix (const char *@var{progname}, const char *@var{bin_prefix}, const char *@var{prefix})
413
414 Given three paths @var{progname}, @var{bin_prefix}, @var{prefix},
415 return the path that is in the same position relative to
416 @var{progname}'s directory as @var{prefix} is relative to
417 @var{bin_prefix}. That is, a string starting with the directory
418 portion of @var{progname}, followed by a relative pathname of the
419 difference between @var{bin_prefix} and @var{prefix}.
420
421 If @var{progname} does not contain any directory separators,
422 @code{make_relative_prefix} will search @env{PATH} to find a program
423 named @var{progname}. Also, if @var{progname} is a symbolic link,
424 the symbolic link will be resolved.
425
426 For example, if @var{bin_prefix} is @code{/alpha/beta/gamma/gcc/delta},
427 @var{prefix} is @code{/alpha/beta/gamma/omega/}, and @var{progname} is
428 @code{/red/green/blue/gcc}, then this function will return
429 @code{/red/green/blue/../../omega/}.
430
431 The return value is normally allocated via @code{malloc}. If no
432 relative prefix can be found, return @code{NULL}.
433
434 @end deftypefn
435
436 @c make-temp-file.c:138
437 @deftypefn Replacement char* make_temp_file (const char *@var{suffix})
438
439 Return a temporary file name (as a string) or @code{NULL} if unable to
440 create one. @var{suffix} is a suffix to append to the file name. The
441 string is @code{malloc}ed, and the temporary file has been created.
442
443 @end deftypefn
444
445 @c memchr.c:3
446 @deftypefn Supplemental void* memchr (const void *@var{s}, int @var{c}, size_t @var{n})
447
448 This function searches memory starting at @code{*@var{s}} for the
449 character @var{c}. The search only ends with the first occurrence of
450 @var{c}, or after @var{length} characters; in particular, a null
451 character does not terminate the search. If the character @var{c} is
452 found within @var{length} characters of @code{*@var{s}}, a pointer
453 to the character is returned. If @var{c} is not found, then @code{NULL} is
454 returned.
455
456 @end deftypefn
457
458 @c memcmp.c:6
459 @deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, size_t @var{count})
460
461 Compares the first @var{count} bytes of two areas of memory. Returns
462 zero if they are the same, a value less than zero if @var{x} is
463 lexically less than @var{y}, or a value greater than zero if @var{x}
464 is lexically greater than @var{y}. Note that lexical order is determined
465 as if comparing unsigned char arrays.
466
467 @end deftypefn
468
469 @c memcpy.c:6
470 @deftypefn Supplemental void* memcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
471
472 Copies @var{length} bytes from memory region @var{in} to region
473 @var{out}. Returns a pointer to @var{out}.
474
475 @end deftypefn
476
477 @c memmove.c:6
478 @deftypefn Supplemental void* memmove (void *@var{from}, const void *@var{to}, size_t @var{count})
479
480 Copies @var{count} bytes from memory area @var{from} to memory area
481 @var{to}, returning a pointer to @var{to}.
482
483 @end deftypefn
484
485 @c mempcpy.c:23
486 @deftypefn Supplemental void* mempcpy (void *@var{out}, const void *@var{in}, size_t @var{length})
487
488 Copies @var{length} bytes from memory region @var{in} to region
489 @var{out}. Returns a pointer to @var{out} + @var{length}.
490
491 @end deftypefn
492
493 @c memset.c:6
494 @deftypefn Supplemental void* memset (void *@var{s}, int @var{c}, size_t @var{count})
495
496 Sets the first @var{count} bytes of @var{s} to the constant byte
497 @var{c}, returning a pointer to @var{s}.
498
499 @end deftypefn
500
501 @c mkstemps.c:54
502 @deftypefn Replacement int mkstemps (char *@var{template}, int @var{suffix_len})
503
504 Generate a unique temporary file name from @var{template}.
505 @var{template} has the form:
506
507 @example
508 @var{path}/ccXXXXXX@var{suffix}
509 @end example
510
511 @var{suffix_len} tells us how long @var{suffix} is (it can be zero
512 length). The last six characters of @var{template} before @var{suffix}
513 must be @samp{XXXXXX}; they are replaced with a string that makes the
514 filename unique. Returns a file descriptor open on the file for
515 reading and writing.
516
517 @end deftypefn
518
519 @c pexecute.txh:1
520 @deftypefn Extension int pexecute (const char *@var{program}, char * const *@var{argv}, const char *@var{this_pname}, const char *@var{temp_base}, char **@var{errmsg_fmt}, char **@var{errmsg_arg}, int flags)
521
522 Executes a program.
523
524 @var{program} and @var{argv} are the arguments to
525 @code{execv}/@code{execvp}.
526
527 @var{this_pname} is name of the calling program (i.e., @code{argv[0]}).
528
529 @var{temp_base} is the path name, sans suffix, of a temporary file to
530 use if needed. This is currently only needed for MS-DOS ports that
531 don't use @code{go32} (do any still exist?). Ports that don't need it
532 can pass @code{NULL}.
533
534 (@code{@var{flags} & PEXECUTE_SEARCH}) is non-zero if @env{PATH}
535 should be searched (??? It's not clear that GCC passes this flag
536 correctly). (@code{@var{flags} & PEXECUTE_FIRST}) is nonzero for the
537 first process in chain. (@code{@var{flags} & PEXECUTE_FIRST}) is
538 nonzero for the last process in chain. The first/last flags could be
539 simplified to only mark the last of a chain of processes but that
540 requires the caller to always mark the last one (and not give up
541 early if some error occurs). It's more robust to require the caller
542 to mark both ends of the chain.
543
544 The result is the pid on systems like Unix where we
545 @code{fork}/@code{exec} and on systems like WIN32 and OS/2 where we
546 use @code{spawn}. It is up to the caller to wait for the child.
547
548 The result is the @code{WEXITSTATUS} on systems like MS-DOS where we
549 @code{spawn} and wait for the child here.
550
551 Upon failure, @var{errmsg_fmt} and @var{errmsg_arg} are set to the
552 text of the error message with an optional argument (if not needed,
553 @var{errmsg_arg} is set to @code{NULL}), and @minus{}1 is returned.
554 @code{errno} is available to the caller to use.
555
556 @end deftypefn
557
558 @c strsignal.c:547
559 @deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message})
560
561 Print @var{message} to the standard error, followed by a colon,
562 followed by the description of the signal specified by @var{signo},
563 followed by a newline.
564
565 @end deftypefn
566
567 @c putenv.c:21
568 @deftypefn Supplemental int putenv (const char *@var{string})
569
570 Uses @code{setenv} or @code{unsetenv} to put @var{string} into
571 the environment or remove it. If @var{string} is of the form
572 @samp{name=value} the string is added; if no @samp{=} is present the
573 name is unset/removed.
574
575 @end deftypefn
576
577 @c pexecute.txh:39
578 @deftypefn Extension int pwait (int @var{pid}, int *@var{status}, int @var{flags})
579
580 Waits for a program started by @code{pexecute} to finish.
581
582 @var{pid} is the process id of the task to wait for. @var{status} is
583 the `status' argument to wait. @var{flags} is currently unused
584 (allows future enhancement without breaking upward compatibility).
585 Pass 0 for now.
586
587 The result is the pid of the child reaped, or -1 for failure
588 (@code{errno} says why).
589
590 On systems that don't support waiting for a particular child,
591 @var{pid} is ignored. On systems like MS-DOS that don't really
592 multitask @code{pwait} is just a mechanism to provide a consistent
593 interface for the caller.
594
595 @end deftypefn
596
597 @c random.c:39
598 @deftypefn Supplement {long int} random (void)
599 @deftypefnx Supplement void srandom (unsigned int @var{seed})
600 @deftypefnx Supplement void* initstate (unsigned int @var{seed}, void *@var{arg_state}, unsigned long @var{n})
601 @deftypefnx Supplement void* setstate (void *@var{arg_state})
602
603 Random number functions. @code{random} returns a random number in the
604 range 0 to @code{LONG_MAX}. @code{srandom} initializes the random
605 number generator to some starting point determined by @var{seed}
606 (else, the values returned by @code{random} are always the same for each
607 run of the program). @code{initstate} and @code{setstate} allow fine-grained
608 control over the state of the random number generator.
609
610 @end deftypefn
611
612 @c concat.c:177
613 @deftypefn Extension char* reconcat (char *@var{optr}, const char *@var{s1}, @dots{}, @code{NULL})
614
615 Same as @code{concat}, except that if @var{optr} is not @code{NULL} it
616 is freed after the string is created. This is intended to be useful
617 when you're extending an existing string or building up a string in a
618 loop:
619
620 @example
621 str = reconcat (str, "pre-", str, NULL);
622 @end example
623
624 @end deftypefn
625
626 @c rename.c:6
627 @deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new})
628
629 Renames a file from @var{old} to @var{new}. If @var{new} already
630 exists, it is removed.
631
632 @end deftypefn
633
634 @c rindex.c:5
635 @deftypefn Supplemental char* rindex (const char *@var{s}, int @var{c})
636
637 Returns a pointer to the last occurrence of the character @var{c} in
638 the string @var{s}, or @code{NULL} if not found. The use of @code{rindex} is
639 deprecated in new programs in favor of @code{strrchr}.
640
641 @end deftypefn
642
643 @c setenv.c:22
644 @deftypefn Supplemental int setenv (const char *@var{name}, const char *@var{value}, int @var{overwrite})
645 @deftypefnx Supplemental void unsetenv (const char *@var{name})
646
647 @code{setenv} adds @var{name} to the environment with value
648 @var{value}. If the name was already present in the environment,
649 the new value will be stored only if @var{overwrite} is nonzero.
650 The companion @code{unsetenv} function removes @var{name} from the
651 environment. This implementation is not safe for multithreaded code.
652
653 @end deftypefn
654
655 @c strsignal.c:353
656 @deftypefn Extension int signo_max (void)
657
658 Returns the maximum signal value for which a corresponding symbolic
659 name or message is available. Note that in the case where we use the
660 @code{sys_siglist} supplied by the system, it is possible for there to
661 be more symbolic names than messages, or vice versa. In fact, the
662 manual page for @code{psignal(3b)} explicitly warns that one should
663 check the size of the table (@code{NSIG}) before indexing it, since
664 new signal codes may be added to the system before they are added to
665 the table. Thus @code{NSIG} might be smaller than value implied by
666 the largest signo value defined in @code{<signal.h>}.
667
668 We return the maximum value that can be used to obtain a meaningful
669 symbolic name or message.
670
671 @end deftypefn
672
673 @c sigsetmask.c:8
674 @deftypefn Supplemental int sigsetmask (int @var{set})
675
676 Sets the signal mask to the one provided in @var{set} and returns
677 the old mask (which, for libiberty's implementation, will always
678 be the value @code{1}).
679
680 @end deftypefn
681
682 @c snprintf.c:28
683 @deftypefn Supplemental int snprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, ...)
684
685 This function is similar to sprintf, but it will print at most @var{n}
686 characters. On error the return value is -1, otherwise it returns the
687 number of characters that would have been printed had @var{n} been
688 sufficiently large, regardless of the actual value of @var{n}. Note
689 some pre-C99 system libraries do not implement this correctly so users
690 cannot generally rely on the return value if the system version of
691 this function is used.
692
693 @end deftypefn
694
695 @c spaces.c:22
696 @deftypefn Extension char* spaces (int @var{count})
697
698 Returns a pointer to a memory region filled with the specified
699 number of spaces and null terminated. The returned pointer is
700 valid until at least the next call.
701
702 @end deftypefn
703
704 @c stpcpy.c:23
705 @deftypefn Supplemental char* stpcpy (char *@var{dst}, const char *@var{src})
706
707 Copies the string @var{src} into @var{dst}. Returns a pointer to
708 @var{dst} + strlen(@var{src}).
709
710 @end deftypefn
711
712 @c stpncpy.c:23
713 @deftypefn Supplemental char* stpncpy (char *@var{dst}, const char *@var{src}, size_t @var{len})
714
715 Copies the string @var{src} into @var{dst}, copying exactly @var{len}
716 and padding with zeros if necessary. If @var{len} < strlen(@var{src})
717 then return @var{dst} + @var{len}, otherwise returns @var{dst} +
718 strlen(@var{src}).
719
720 @end deftypefn
721
722 @c strcasecmp.c:15
723 @deftypefn Supplemental int strcasecmp (const char *@var{s1}, const char *@var{s2})
724
725 A case-insensitive @code{strcmp}.
726
727 @end deftypefn
728
729 @c strchr.c:6
730 @deftypefn Supplemental char* strchr (const char *@var{s}, int @var{c})
731
732 Returns a pointer to the first occurrence of the character @var{c} in
733 the string @var{s}, or @code{NULL} if not found. If @var{c} is itself the
734 null character, the results are undefined.
735
736 @end deftypefn
737
738 @c strdup.c:3
739 @deftypefn Supplemental char* strdup (const char *@var{s})
740
741 Returns a pointer to a copy of @var{s} in memory obtained from
742 @code{malloc}, or @code{NULL} if insufficient memory was available.
743
744 @end deftypefn
745
746 @c strerror.c:670
747 @deftypefn Replacement {const char*} strerrno (int @var{errnum})
748
749 Given an error number returned from a system call (typically returned
750 in @code{errno}), returns a pointer to a string containing the
751 symbolic name of that error number, as found in @code{<errno.h>}.
752
753 If the supplied error number is within the valid range of indices for
754 symbolic names, but no name is available for the particular error
755 number, then returns the string @samp{Error @var{num}}, where @var{num}
756 is the error number.
757
758 If the supplied error number is not within the range of valid
759 indices, then returns @code{NULL}.
760
761 The contents of the location pointed to are only guaranteed to be
762 valid until the next call to @code{strerrno}.
763
764 @end deftypefn
765
766 @c strerror.c:602
767 @deftypefn Supplemental char* strerror (int @var{errnoval})
768
769 Maps an @code{errno} number to an error message string, the contents
770 of which are implementation defined. On systems which have the
771 external variables @code{sys_nerr} and @code{sys_errlist}, these
772 strings will be the same as the ones used by @code{perror}.
773
774 If the supplied error number is within the valid range of indices for
775 the @code{sys_errlist}, but no message is available for the particular
776 error number, then returns the string @samp{Error @var{num}}, where
777 @var{num} is the error number.
778
779 If the supplied error number is not a valid index into
780 @code{sys_errlist}, returns @code{NULL}.
781
782 The returned string is only guaranteed to be valid only until the
783 next call to @code{strerror}.
784
785 @end deftypefn
786
787 @c strncasecmp.c:15
788 @deftypefn Supplemental int strncasecmp (const char *@var{s1}, const char *@var{s2})
789
790 A case-insensitive @code{strncmp}.
791
792 @end deftypefn
793
794 @c strncmp.c:6
795 @deftypefn Supplemental int strncmp (const char *@var{s1}, const char *@var{s2}, size_t @var{n})
796
797 Compares the first @var{n} bytes of two strings, returning a value as
798 @code{strcmp}.
799
800 @end deftypefn
801
802 @c strrchr.c:6
803 @deftypefn Supplemental char* strrchr (const char *@var{s}, int @var{c})
804
805 Returns a pointer to the last occurrence of the character @var{c} in
806 the string @var{s}, or @code{NULL} if not found. If @var{c} is itself the
807 null character, the results are undefined.
808
809 @end deftypefn
810
811 @c strsignal.c:388
812 @deftypefn Supplemental {const char *} strsignal (int @var{signo})
813
814 Maps an signal number to an signal message string, the contents of
815 which are implementation defined. On systems which have the external
816 variable @code{sys_siglist}, these strings will be the same as the
817 ones used by @code{psignal()}.
818
819 If the supplied signal number is within the valid range of indices for
820 the @code{sys_siglist}, but no message is available for the particular
821 signal number, then returns the string @samp{Signal @var{num}}, where
822 @var{num} is the signal number.
823
824 If the supplied signal number is not a valid index into
825 @code{sys_siglist}, returns @code{NULL}.
826
827 The returned string is only guaranteed to be valid only until the next
828 call to @code{strsignal}.
829
830 @end deftypefn
831
832 @c strsignal.c:452
833 @deftypefn Extension {const char*} strsigno (int @var{signo})
834
835 Given an signal number, returns a pointer to a string containing the
836 symbolic name of that signal number, as found in @code{<signal.h>}.
837
838 If the supplied signal number is within the valid range of indices for
839 symbolic names, but no name is available for the particular signal
840 number, then returns the string @samp{Signal @var{num}}, where
841 @var{num} is the signal number.
842
843 If the supplied signal number is not within the range of valid
844 indices, then returns @code{NULL}.
845
846 The contents of the location pointed to are only guaranteed to be
847 valid until the next call to @code{strsigno}.
848
849 @end deftypefn
850
851 @c strstr.c:6
852 @deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub})
853
854 This function searches for the substring @var{sub} in the string
855 @var{string}, not including the terminating null characters. A pointer
856 to the first occurrence of @var{sub} is returned, or @code{NULL} if the
857 substring is absent. If @var{sub} points to a string with zero
858 length, the function returns @var{string}.
859
860 @end deftypefn
861
862 @c strtod.c:27
863 @deftypefn Supplemental double strtod (const char *@var{string}, char **@var{endptr})
864
865 This ISO C function converts the initial portion of @var{string} to a
866 @code{double}. If @var{endptr} is not @code{NULL}, a pointer to the
867 character after the last character used in the conversion is stored in
868 the location referenced by @var{endptr}. If no conversion is
869 performed, zero is returned and the value of @var{string} is stored in
870 the location referenced by @var{endptr}.
871
872 @end deftypefn
873
874 @c strerror.c:730
875 @deftypefn Extension int strtoerrno (const char *@var{name})
876
877 Given the symbolic name of a error number (e.g., @code{EACCES}), map it
878 to an errno value. If no translation is found, returns 0.
879
880 @end deftypefn
881
882 @c strtol.c:33
883 @deftypefn Supplemental {long int} strtol (const char *@var{string}, char **@var{endptr}, int @var{base})
884 @deftypefnx Supplemental {unsigned long int} strtoul (const char *@var{string}, char **@var{endptr}, int @var{base})
885
886 The @code{strtol} function converts the string in @var{string} to a
887 long integer value according to the given @var{base}, which must be
888 between 2 and 36 inclusive, or be the special value 0. If @var{base}
889 is 0, @code{strtol} will look for the prefixes @code{0} and @code{0x}
890 to indicate bases 8 and 16, respectively, else default to base 10.
891 When the base is 16 (either explicitly or implicitly), a prefix of
892 @code{0x} is allowed. The handling of @var{endptr} is as that of
893 @code{strtod} above. The @code{strtoul} function is the same, except
894 that the converted value is unsigned.
895
896 @end deftypefn
897
898 @c strsignal.c:507
899 @deftypefn Extension int strtosigno (const char *@var{name})
900
901 Given the symbolic name of a signal, map it to a signal number. If no
902 translation is found, returns 0.
903
904 @end deftypefn
905
906 @c tmpnam.c:3
907 @deftypefn Supplemental char* tmpnam (char *@var{s})
908
909 This function attempts to create a name for a temporary file, which
910 will be a valid file name yet not exist when @code{tmpnam} checks for
911 it. @var{s} must point to a buffer of at least @code{L_tmpnam} bytes,
912 or be @code{NULL}. Use of this function creates a security risk, and it must
913 not be used in new projects. Use @code{mkstemp} instead.
914
915 @end deftypefn
916
917 @c vasprintf.c:48
918 @deftypefn Extension int vasprintf (char **@var{resptr}, const char *@var{format}, va_list @var{args})
919
920 Like @code{vsprintf}, but instead of passing a pointer to a buffer,
921 you pass a pointer to a pointer. This function will compute the size
922 of the buffer needed, allocate memory with @code{malloc}, and store a
923 pointer to the allocated memory in @code{*@var{resptr}}. The value
924 returned is the same as @code{vsprintf} would return. If memory could
925 not be allocated, zero is returned and @code{NULL} is stored in
926 @code{*@var{resptr}}.
927
928 @end deftypefn
929
930 @c vfork.c:6
931 @deftypefn Supplemental int vfork (void)
932
933 Emulates @code{vfork} by calling @code{fork} and returning its value.
934
935 @end deftypefn
936
937 @c vprintf.c:3
938 @deftypefn Supplemental int vprintf (const char *@var{format}, va_list @var{ap})
939 @deftypefnx Supplemental int vfprintf (FILE *@var{stream}, const char *@var{format}, va_list @var{ap})
940 @deftypefnx Supplemental int vsprintf (char *@var{str}, const char *@var{format}, va_list @var{ap})
941
942 These functions are the same as @code{printf}, @code{fprintf}, and
943 @code{sprintf}, respectively, except that they are called with a
944 @code{va_list} instead of a variable number of arguments. Note that
945 they do not call @code{va_end}; this is the application's
946 responsibility. In @libib{} they are implemented in terms of the
947 nonstandard but common function @code{_doprnt}.
948
949 @end deftypefn
950
951 @c vsnprintf.c:28
952 @deftypefn Supplemental int vsnprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, va_list @var{ap})
953
954 This function is similar to vsprintf, but it will print at most
955 @var{n} characters. On error the return value is -1, otherwise it
956 returns the number of characters that would have been printed had
957 @var{n} been sufficiently large, regardless of the actual value of
958 @var{n}. Note some pre-C99 system libraries do not implement this
959 correctly so users cannot generally rely on the return value if the
960 system version of this function is used.
961
962 @end deftypefn
963
964 @c waitpid.c:3
965 @deftypefn Supplemental int waitpid (int @var{pid}, int *@var{status}, int)
966
967 This is a wrapper around the @code{wait} function. Any ``special''
968 values of @var{pid} depend on your implementation of @code{wait}, as
969 does the return value. The third argument is unused in @libib{}.
970
971 @end deftypefn
972
973 @c xatexit.c:11
974 @deftypefun int xatexit (void (*@var{fn}) (void))
975
976 Behaves as the standard @code{atexit} function, but with no limit on
977 the number of registered functions. Returns 0 on success, or @minus{}1 on
978 failure. If you use @code{xatexit} to register functions, you must use
979 @code{xexit} to terminate your program.
980
981 @end deftypefun
982
983 @c xmalloc.c:38
984 @deftypefn Replacement void* xcalloc (size_t @var{nelem}, size_t @var{elsize})
985
986 Allocate memory without fail, and set it to zero. This routine functions
987 like @code{calloc}, but will behave the same as @code{xmalloc} if memory
988 cannot be found.
989
990 @end deftypefn
991
992 @c xexit.c:22
993 @deftypefn Replacement void xexit (int @var{code})
994
995 Terminates the program. If any functions have been registered with
996 the @code{xatexit} replacement function, they will be called first.
997 Termination is handled via the system's normal @code{exit} call.
998
999 @end deftypefn
1000
1001 @c xmalloc.c:22
1002 @deftypefn Replacement void* xmalloc (size_t)
1003
1004 Allocate memory without fail. If @code{malloc} fails, this will print
1005 a message to @code{stderr} (using the name set by
1006 @code{xmalloc_set_program_name},
1007 if any) and then call @code{xexit}. Note that it is therefore safe for
1008 a program to contain @code{#define malloc xmalloc} in its source.
1009
1010 @end deftypefn
1011
1012 @c xmalloc.c:53
1013 @deftypefn Replacement void xmalloc_failed (size_t)
1014
1015 This function is not meant to be called by client code, and is listed
1016 here for completeness only. If any of the allocation routines fail, this
1017 function will be called to print an error message and terminate execution.
1018
1019 @end deftypefn
1020
1021 @c xmalloc.c:46
1022 @deftypefn Replacement void xmalloc_set_program_name (const char *@var{name})
1023
1024 You can use this to set the name of the program used by
1025 @code{xmalloc_failed} when printing a failure message.
1026
1027 @end deftypefn
1028
1029 @c xmemdup.c:7
1030 @deftypefn Replacement void* xmemdup (void *@var{input}, size_t @var{copy_size}, size_t @var{alloc_size})
1031
1032 Duplicates a region of memory without fail. First, @var{alloc_size} bytes
1033 are allocated, then @var{copy_size} bytes from @var{input} are copied into
1034 it, and the new memory is returned. If fewer bytes are copied than were
1035 allocated, the remaining memory is zeroed.
1036
1037 @end deftypefn
1038
1039 @c xmalloc.c:32
1040 @deftypefn Replacement void* xrealloc (void *@var{ptr}, size_t @var{size})
1041 Reallocate memory without fail. This routine functions like @code{realloc},
1042 but will behave the same as @code{xmalloc} if memory cannot be found.
1043
1044 @end deftypefn
1045
1046 @c xstrdup.c:7
1047 @deftypefn Replacement char* xstrdup (const char *@var{s})
1048
1049 Duplicates a character string without fail, using @code{xmalloc} to
1050 obtain memory.
1051
1052 @end deftypefn
1053
1054 @c xstrerror.c:7
1055 @deftypefn Replacement char* xstrerror (int @var{errnum})
1056
1057 Behaves exactly like the standard @code{strerror} function, but
1058 will never return a @code{NULL} pointer.
1059
1060 @end deftypefn
1061
1062
This page took 0.061981 seconds and 5 git commands to generate.