|
|
|
@ -21,6 +21,19 @@ the possibility of a GCC built-in function. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c asprintf.c:33 |
|
|
|
@deftypefn Extension int asprintf (char **@var{resptr}, char *@var{format}, ...) |
|
|
|
|
|
|
|
Like @code{sprintf}, but instead of passing a pointer to a buffer, you |
|
|
|
pass a pointer to a pointer. This function will compute the size of |
|
|
|
the buffer needed, allocate memory with @code{malloc}, and store a |
|
|
|
pointer to the allocated memory in @code{*@var{resptr}}. The value |
|
|
|
returned is the same as @code{sprintf} would return. If memory could |
|
|
|
not be allocated, zero is returned and @code{NULL} is stored in |
|
|
|
@code{*@var{resptr}}. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c atexit.c:6 |
|
|
|
@deftypefn Supplemental int atexit (void (*@var{f})()) |
|
|
|
|
|
|
|
@ -69,6 +82,31 @@ is respectively less than, matching, or greater than the array member. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c argv.c:139 |
|
|
|
@deftypefn Extension char** buildargv (char *@var{sp}) |
|
|
|
|
|
|
|
Given a pointer to a string, parse the string extracting fields |
|
|
|
separated by whitespace and optionally enclosed within either single |
|
|
|
or double quotes (which are stripped off), and build a vector of |
|
|
|
pointers to copies of the string for each field. The input string |
|
|
|
remains unchanged. The last element of the vector is followed by a |
|
|
|
@code{NULL} element. |
|
|
|
|
|
|
|
All of the memory for the pointer array and copies of the string |
|
|
|
is obtained from @code{malloc}. All of the memory can be returned to the |
|
|
|
system with the single function call @code{freeargv}, which takes the |
|
|
|
returned result of @code{buildargv}, as it's argument. |
|
|
|
|
|
|
|
Returns a pointer to the argument vector if successful. Returns |
|
|
|
@code{NULL} if @var{sp} is @code{NULL} or if there is insufficient |
|
|
|
memory to complete building the argument vector. |
|
|
|
|
|
|
|
If the input is a null string (as opposed to a @code{NULL} pointer), |
|
|
|
then buildarg returns an argument vector that has one arg, a null |
|
|
|
string. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c bzero.c:6 |
|
|
|
@deftypefn Supplemental void bzero (char *@var{mem}, int @var{count}) |
|
|
|
|
|
|
|
@ -85,6 +123,27 @@ Uses @code{malloc} to allocate storage for @var{nelem} objects of |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c choose-temp.c:42 |
|
|
|
@deftypefn Extension char* choose_temp_base () |
|
|
|
|
|
|
|
Return a prefix for temporary file names or @code{NULL} if unable to |
|
|
|
find one. The current directory is chosen if all else fails so the |
|
|
|
program is exited if a temporary directory can't be found (@code{mktemp} |
|
|
|
fails). The buffer for the result is obtained with @code{xmalloc}. |
|
|
|
|
|
|
|
This function is provided for backwards compatability only. Its use is |
|
|
|
not recommended. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c make-temp-file.c:88 |
|
|
|
@deftypefn Replacement char* choose_tmpdir () |
|
|
|
|
|
|
|
Returns a pointer to a directory path suitable for creating temporary |
|
|
|
files in. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c clock.c:27 |
|
|
|
@deftypefn Supplemental long clock (void) |
|
|
|
|
|
|
|
@ -94,8 +153,29 @@ number of seconds used. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c concat.c:24 |
|
|
|
@deftypefn Extension char* concat (char *@var{s1}, char *@var{s2}, ..., @code{NULL}) |
|
|
|
|
|
|
|
Concatenate zero or more of strings and return the result in freshly |
|
|
|
xmalloc'd memory. Returns @code{NULL} if insufficient memory is |
|
|
|
available. The argument list is terminated by the first @code{NULL} |
|
|
|
pointer encountered. Pointers to empty strings are ignored. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c argv.c:65 |
|
|
|
@deftypefn Extension char** dupargv (char **@var{vector}) |
|
|
|
|
|
|
|
Duplicate an argument vector. Simply scans through @var{vector}, |
|
|
|
duplicating each argument until the terminating @code{NULL} is found. |
|
|
|
Returns a pointer to the argument vector if successful. Returns |
|
|
|
@code{NULL} if there is insufficient memory to complete building the |
|
|
|
argument vector. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strerror.c:566 |
|
|
|
@deftypefn Replacement int errno_max (void) |
|
|
|
@deftypefn Extension int errno_max (void) |
|
|
|
|
|
|
|
Returns the maximum @code{errno} value for which a corresponding |
|
|
|
symbolic name or message is available. Note that in the case where we |
|
|
|
@ -112,6 +192,99 @@ symbolic name or message. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c fdmatch.c:23 |
|
|
|
@deftypefn Extension int fdmatch (int @var{fd1}, int @var{fd2}) |
|
|
|
|
|
|
|
Check to see if two open file descriptors refer to the same file. |
|
|
|
This is useful, for example, when we have an open file descriptor for |
|
|
|
an unnamed file, and the name of a file that we believe to correspond |
|
|
|
to that fd. This can happen when we are exec'd with an already open |
|
|
|
file (@code{stdout} for example) or from the SVR4 @file{/proc} calls |
|
|
|
that return open file descriptors for mapped address spaces. All we |
|
|
|
have to do is open the file by name and check the two file descriptors |
|
|
|
for a match, which is done by comparing major and minor device numbers |
|
|
|
and inode numbers. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c ffs.c:3 |
|
|
|
@deftypefn Supplemental int ffs (int @var{valu}) |
|
|
|
|
|
|
|
Find the first (least significant) bit set in @var{valu}. Bits are |
|
|
|
numbered from right to left, starting with bit 1 (corresponding to the |
|
|
|
value 1). If @var{valu} is zero, zero is returned. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c fnmatch.txh:1 |
|
|
|
@deftypefn Replacement int fnmatch (const char *@var{pattern}, const char *@var{string}, int @var{flags}) |
|
|
|
|
|
|
|
Matches @var{string} against @var{pattern}, returning zero if it |
|
|
|
matches, @code{FNM_NOMATCH} if not. @var{pattern} may contain the |
|
|
|
wildcards @code{?} to match any one character, @code{*} to match any |
|
|
|
zero or more characters, or a set of alternate characters in square |
|
|
|
brackets, like @samp{[a-gt8]}, which match one character (@code{a} |
|
|
|
through @code{g}, or @code{t}, or @code{8}, in this example) if that one |
|
|
|
character is in the set. A set may be inverted (i.e. match anything |
|
|
|
except what's in the set) by giving @code{^} or @code{!} as the first |
|
|
|
character in the set. To include those characters in the set, list them |
|
|
|
as anything other than the first character of the set. To include a |
|
|
|
dash in the set, list it last in the set. A backslash character makes |
|
|
|
the following character not special, so for example you could match |
|
|
|
against a literal asterisk with @samp{\*}. To match a literal |
|
|
|
backslash, use @samp{\\}. |
|
|
|
|
|
|
|
@code{flags} controls various aspects of the matching process, and is a |
|
|
|
boolean OR of zero or more of the following values (defined in |
|
|
|
@code{<fnmatch.h>}: |
|
|
|
|
|
|
|
@table @code |
|
|
|
|
|
|
|
@item FNM_PATHNAME |
|
|
|
@itemx FNM_FILE_NAME |
|
|
|
@var{string} is assumed to be a path name. No wildcard will ever match |
|
|
|
@code{/}. |
|
|
|
|
|
|
|
@item FNM_NOESCAPE |
|
|
|
Do not interpret backslashes as quoting the following special character. |
|
|
|
|
|
|
|
@item FNM_PERIOD |
|
|
|
A leading period (at the beginning of @var{string}, or if |
|
|
|
@code{FNM_PATHNAME} after a slash) is not matched by @code{*} or |
|
|
|
@code{?} but must be matched explicitly. |
|
|
|
|
|
|
|
@item FNM_LEADING_DIR |
|
|
|
Means that @var{string} also matches @var{pattern} if some initial part |
|
|
|
of @var{string} matches, and is followed by @code{/} and zero or more |
|
|
|
characters. For example, @samp{foo*} would match either @samp{foobar} |
|
|
|
or @samp{foobar/grill}. |
|
|
|
|
|
|
|
@item FNM_CASEFOLD |
|
|
|
Ignores case when performing the comparison. |
|
|
|
|
|
|
|
@end table |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c argv.c:111 |
|
|
|
@deftypefn Extension void freeargv (char **@var{vector}) |
|
|
|
|
|
|
|
Free an argument vector that was built using @code{buildargv}. Simply |
|
|
|
scans through @var{vector}, freeing the memory for each argument until |
|
|
|
the terminating @code{NULL} is found, and then frees @var{vector} |
|
|
|
itself. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c getruntime.c:78 |
|
|
|
@deftypefn Replacement long get_run_time () |
|
|
|
|
|
|
|
Returns the time used so far, in microseconds. If possible, this is |
|
|
|
the time used by this process, else it is the elapsed time since the |
|
|
|
process started. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c getcwd.c:6 |
|
|
|
@deftypefn Supplemental char* getcwd (char *@var{pathname}, int @var{len}) |
|
|
|
|
|
|
|
@ -153,6 +326,52 @@ deprecated in new programs in favor of @code{strchr}. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c insque.c:6 |
|
|
|
@deftypefn Supplemental void insque (struct qelem *@var{elem}, struct qelem *@var{pred}) |
|
|
|
@deftypefnx Supplemental void remque (struct qelem *@var{elem}) |
|
|
|
|
|
|
|
Routines to manipulate queues built from doubly linked lists. The |
|
|
|
@code{insque} routine inserts @var{elem} in the queue immediately |
|
|
|
after @var{pred}. The @code{remque} routine removes @var{elem} from |
|
|
|
its containing queue. These routines expect to be passed pointers to |
|
|
|
structures which have as their first members a forward pointer and a |
|
|
|
back pointer, like this prototype (although no prototype is provided): |
|
|
|
|
|
|
|
@example |
|
|
|
struct qelem @{ |
|
|
|
struct qelem *q_forw; |
|
|
|
struct qelem *q_back; |
|
|
|
char q_data[]; |
|
|
|
@}; |
|
|
|
@end example |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c lbasename.c:23 |
|
|
|
@deftypefn Replacement {const char*} lbasename (const char *@var{name}) |
|
|
|
|
|
|
|
Given a pointer to a string containing a typical pathname |
|
|
|
(@samp{/usr/src/cmd/ls/ls.c} for example), returns a pointer to the |
|
|
|
last component of the pathname (@samp{ls.c} in this case). The |
|
|
|
returned pointer is guaranteed to lie within the original |
|
|
|
string. This latter fact is not true of many vendor C |
|
|
|
libraries, which return special strings or modify the passed |
|
|
|
strings for particular input. |
|
|
|
|
|
|
|
In particular, the empty string returns the same empty string, |
|
|
|
and a path ending in @code{/} returns the empty string after it. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c make-temp-file.c:138 |
|
|
|
@deftypefn Replacement char* make_temp_file (const char *@var{suffix}) |
|
|
|
|
|
|
|
Return a temporary file name (as a string) or @code{NULL} if unable to |
|
|
|
create one. @var{suffix} is a suffix to append to the file name. The |
|
|
|
string is malloced, and the temporary file has been created. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c memchr.c:3 |
|
|
|
@deftypefn Supplemental void* memchr (const void *@var{s}, int @var{c}, size_t @var{n}) |
|
|
|
|
|
|
|
@ -201,6 +420,71 @@ Sets the first @var{count} bytes of @var{s} to the constant byte |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c mkstemps.c:54 |
|
|
|
@deftypefn Replacement int mkstemps (char *@var{template}, int @var{suffix_len}) |
|
|
|
|
|
|
|
Generate a unique temporary file name from @var{template}. |
|
|
|
@var{template} has the form: |
|
|
|
|
|
|
|
@example |
|
|
|
<path>/ccXXXXXX<suffix> |
|
|
|
@end example |
|
|
|
|
|
|
|
@var{suffix_len} tells us how long <suffix> is (it can be zero |
|
|
|
length). The last six characters of @var{template} before <suffix> |
|
|
|
must be @code{XXXXXX}; they are replaced with a string that makes the |
|
|
|
filename unique. Returns a file descriptor open on the file for |
|
|
|
reading and writing. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c pexecute.c:67 |
|
|
|
@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) |
|
|
|
|
|
|
|
Executes a program. |
|
|
|
|
|
|
|
@var{program} and @var{argv} are the arguments to |
|
|
|
@code{execv}/@code{execvp}. |
|
|
|
|
|
|
|
@var{this_pname} is name of the calling program (i.e. @code{argv[0]}). |
|
|
|
|
|
|
|
@var{temp_base} is the path name, sans suffix, of a temporary file to |
|
|
|
use if needed. This is currently only needed for MS-DOS ports that |
|
|
|
don't use @code{go32} (do any still exist?). Ports that don't need it |
|
|
|
can pass @code{NULL}. |
|
|
|
|
|
|
|
(@var{flags} & @code{PEXECUTE_SEARCH}) is non-zero if @code{$PATH} should be searched |
|
|
|
(??? It's not clear that GCC passes this flag correctly). (@var{flags} & |
|
|
|
@code{PEXECUTE_FIRST}) is nonzero for the first process in chain. |
|
|
|
(@var{flags} & @code{PEXECUTE_FIRST}) is nonzero for the last process |
|
|
|
in chain. The first/last flags could be simplified to only mark the |
|
|
|
last of a chain of processes but that requires the caller to always |
|
|
|
mark the last one (and not give up early if some error occurs). |
|
|
|
It's more robust to require the caller to mark both ends of the chain. |
|
|
|
|
|
|
|
The result is the pid on systems like Unix where we |
|
|
|
@code{fork}/@code{exec} and on systems like WIN32 and OS/2 where we |
|
|
|
use @code{spawn}. It is up to the caller to wait for the child. |
|
|
|
|
|
|
|
The result is the WEXITSTATUS on systems like MS-DOS where we |
|
|
|
@code{spawn} and wait for the child here. |
|
|
|
|
|
|
|
Upon failure, @var{errmsg_fmt} and @var{errmsg_arg} are set to the |
|
|
|
text of the error message with an optional argument (if not needed, |
|
|
|
@var{errmsg_arg} is set to @code{NULL}), and -1 is returned. |
|
|
|
@code{errno} is available to the caller to use. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strsignal.c:547 |
|
|
|
@deftypefn Supplemental void psignal (unsigned @var{signo}, char *@var{message}) |
|
|
|
|
|
|
|
Print @var{message} to the standard error, followed by a colon, |
|
|
|
followed by the description of the signal specified by @var{signo}, |
|
|
|
followed by a newline. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c putenv.c:21 |
|
|
|
@deftypefn Supplemental int putenv (const char *@var{string}) |
|
|
|
|
|
|
|
@ -211,6 +495,53 @@ name is unset/removed. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c pexecute.c:104 |
|
|
|
@deftypefn Extension int pwait (int @var{pid}, int *@var{status}, int @var{flags}) |
|
|
|
|
|
|
|
Waits for a program started by @code{pexecute} to finish. |
|
|
|
|
|
|
|
@var{pid} is the process id of the task to wait for. @var{status} is |
|
|
|
the `status' argument to wait. @var{flags} is currently unused (allows |
|
|
|
future enhancement without breaking upward compatibility). Pass 0 for now. |
|
|
|
|
|
|
|
The result is the pid of the child reaped, or -1 for failure |
|
|
|
(@code{errno} says why). |
|
|
|
|
|
|
|
On systems that don't support waiting for a particular child, @var{pid} is |
|
|
|
ignored. On systems like MS-DOS that don't really multitask @code{pwait} |
|
|
|
is just a mechanism to provide a consistent interface for the caller. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c random.c:39 |
|
|
|
@deftypefn Supplement {long int} random () |
|
|
|
@deftypefnx Supplement void srandom (unsigned int @var{seed}) |
|
|
|
@deftypefnx Supplement void* initstate (unsigned int @var{seed}, void *@var{arg_state}, unsigned long @var{n}) |
|
|
|
@deftypefnx Supplement void* setstate (void *@var{arg_state}) |
|
|
|
|
|
|
|
Random number functions. @code{random} returns a random number in the |
|
|
|
range @code{0..LONG_MAX}. @code{srandom} initializes the random |
|
|
|
number generator to some starting point determined by @var{seed} |
|
|
|
(else, the values returned by @code{random} are always the same for each |
|
|
|
run of the program). @code{initstate} and @code{setstate} allow fine-grain |
|
|
|
control over the state of the random number generator. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c concat.c:177 |
|
|
|
@deftypefn Extension char* reconcat (char *@var{optr}, char *@var{s1}, ..., @code{NULL}) |
|
|
|
|
|
|
|
Same as @code{concat}, except that if @var{optr} is not @code{NULL} it |
|
|
|
is freed after the string is created. This is intended to be useful |
|
|
|
when you're extending an existing string or building up a string in a |
|
|
|
loop: |
|
|
|
|
|
|
|
@example |
|
|
|
str = reconcat (str, "pre-", str, NULL); |
|
|
|
@end example |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c rename.c:6 |
|
|
|
@deftypefn Supplemental int rename (const char *@var{old}, const char *@var{new}) |
|
|
|
|
|
|
|
@ -240,6 +571,24 @@ environment. This implementation is not safe for multithreaded code. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strsignal.c:353 |
|
|
|
@deftypefn Extension int signo_max () |
|
|
|
|
|
|
|
Returns the maximum signal value for which a corresponding symbolic |
|
|
|
name or message is available. Note that in the case where we use the |
|
|
|
@code{sys_siglist} supplied by the system, it is possible for there to |
|
|
|
be more symbolic names than messages, or vice versa. In fact, the |
|
|
|
manual page for @code{psignal(3b)} explicitly warns that one should |
|
|
|
check the size of the table (@code{NSIG}) before indexing it, since |
|
|
|
new signal codes may be added to the system before they are added to |
|
|
|
the table. Thus @code{NSIG} might be smaller than value implied by |
|
|
|
the largest signo value defined in @code{<signal.h>}. |
|
|
|
|
|
|
|
We return the maximum value that can be used to obtain a meaningful |
|
|
|
symbolic name or message. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c sigsetmask.c:8 |
|
|
|
@deftypefn Supplemental int sigsetmask (int @var{set}) |
|
|
|
|
|
|
|
@ -249,6 +598,15 @@ be the value @code{1}). |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c spaces.c:22 |
|
|
|
@deftypefn Extension char* spaces (int @var{count}) |
|
|
|
|
|
|
|
Returns a pointer to a memory region filled with the specified |
|
|
|
number of spaces and null terminated. The returned pointer is |
|
|
|
valid until at least the next call. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strcasecmp.c:15 |
|
|
|
@deftypefn Supplemental int strcasecmp (const char *@var{s1}, const char *@var{s2}) |
|
|
|
|
|
|
|
@ -274,7 +632,7 @@ Returns a pointer to a copy of @var{s} in memory obtained from |
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strerror.c:670 |
|
|
|
@deftypefn Replacement const char* strerrno (int @var{errnum}) |
|
|
|
@deftypefn Replacement {const char*} strerrno (int @var{errnum}) |
|
|
|
|
|
|
|
Given an error number returned from a system call (typically returned |
|
|
|
in @code{errno}), returns a pointer to a string containing the |
|
|
|
@ -282,7 +640,7 @@ symbolic name of that error number, as found in @code{<errno.h>}. |
|
|
|
|
|
|
|
If the supplied error number is within the valid range of indices for |
|
|
|
symbolic names, but no name is available for the particular error |
|
|
|
number, then returns the string @samp{"Error @var{num}"}, where @var{num} |
|
|
|
number, then returns the string @samp{Error @var{num}}, where @var{num} |
|
|
|
is the error number. |
|
|
|
|
|
|
|
If the supplied error number is not within the range of valid |
|
|
|
@ -294,7 +652,7 @@ valid until the next call to @code{strerrno}. |
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strerror.c:602 |
|
|
|
@deftypefn Replacement char* strerror (int @var{errnoval}) |
|
|
|
@deftypefn Supplemental char* strerror (int @var{errnoval}) |
|
|
|
|
|
|
|
Maps an @code{errno} number to an error message string, the contents |
|
|
|
of which are implementation defined. On systems which have the |
|
|
|
@ -303,7 +661,7 @@ strings will be the same as the ones used by @code{perror}. |
|
|
|
|
|
|
|
If the supplied error number is within the valid range of indices for |
|
|
|
the @code{sys_errlist}, but no message is available for the particular |
|
|
|
error number, then returns the string @samp{"Error @var{num}"}, where |
|
|
|
error number, then returns the string @samp{Error @var{num}}, where |
|
|
|
@var{num} is the error number. |
|
|
|
|
|
|
|
If the supplied error number is not a valid index into |
|
|
|
@ -338,6 +696,46 @@ null character, the results are undefined. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strsignal.c:388 |
|
|
|
@deftypefn Supplemental {const char *} strsignal (int @var{signo}) |
|
|
|
|
|
|
|
Maps an signal number to an signal message string, the contents of |
|
|
|
which are implementation defined. On systems which have the external |
|
|
|
variable @code{sys_siglist}, these strings will be the same as the |
|
|
|
ones used by @code{psignal()}. |
|
|
|
|
|
|
|
If the supplied signal number is within the valid range of indices for |
|
|
|
the @code{sys_siglist}, but no message is available for the particular |
|
|
|
signal number, then returns the string @samp{Signal @var{num}}, where |
|
|
|
@var{num} is the signal number. |
|
|
|
|
|
|
|
If the supplied signal number is not a valid index into |
|
|
|
@code{sys_siglist}, returns @code{NULL}. |
|
|
|
|
|
|
|
The returned string is only guaranteed to be valid only until the next |
|
|
|
call to @code{strsignal}. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strsignal.c:452 |
|
|
|
@deftypefn Extension {const char*} strsigno (int @var{signo}) |
|
|
|
|
|
|
|
Given an signal number, returns a pointer to a string containing the |
|
|
|
symbolic name of that signal number, as found in @code{<signal.h>}. |
|
|
|
|
|
|
|
If the supplied signal number is within the valid range of indices for |
|
|
|
symbolic names, but no name is available for the particular signal |
|
|
|
number, then returns the string @samp{Signal @var{num}}, where |
|
|
|
@var{num} is the signal number. |
|
|
|
|
|
|
|
If the supplied signal number is not within the range of valid |
|
|
|
indices, then returns @code{NULL}. |
|
|
|
|
|
|
|
The contents of the location pointed to are only guaranteed to be |
|
|
|
valid until the next call to @code{strsigno}. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strstr.c:6 |
|
|
|
@deftypefn Supplemental char* strstr (const char *@var{string}, const char *@var{sub}) |
|
|
|
|
|
|
|
@ -362,7 +760,7 @@ the location referenced by @var{endptr}. |
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strerror.c:730 |
|
|
|
@deftypefn Replacement int strtoerrno (const char *@var{name}) |
|
|
|
@deftypefn Extension int strtoerrno (const char *@var{name}) |
|
|
|
|
|
|
|
Given the symbolic name of a error number (e.g., @code{EACCES}), map it |
|
|
|
to an errno value. If no translation is found, returns 0. |
|
|
|
@ -371,6 +769,7 @@ to an errno value. If no translation is found, returns 0. |
|
|
|
|
|
|
|
@c strtol.c:33 |
|
|
|
@deftypefn Supplemental {long int} strtol (const char *@var{string}, char **@var{endptr}, int @var{base}) |
|
|
|
@deftypefnx Supplemental {unsigned long int} strtoul (const char *@var{string}, char **@var{endptr}, int @var{base}) |
|
|
|
|
|
|
|
The @code{strtol} function converts the string in @var{string} to a |
|
|
|
long integer value according to the given @var{base}, which must be |
|
|
|
@ -379,7 +778,16 @@ is 0, @code{strtol} will look for the prefixes @code{0} and @code{0x} |
|
|
|
to indicate bases 8 and 16, respectively, else default to base 10. |
|
|
|
When the base is 16 (either explicitly or implicitly), a prefix of |
|
|
|
@code{0x} is allowed. The handling of @var{endptr} is as that of |
|
|
|
@code{strtod} above. |
|
|
|
@code{strtod} above. The @code{strtoul} function is the same, except |
|
|
|
that the converted value is unsigned. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c strsignal.c:507 |
|
|
|
@deftypefn Extension int strtosigno (const char *@var{name}) |
|
|
|
|
|
|
|
Given the symbolic name of a signal, map it to a signal number. If no |
|
|
|
translation is found, returns 0. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@ -394,6 +802,19 @@ not be used in new projects. Use @code{mkstemp} instead. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c vasprintf.c:48 |
|
|
|
@deftypefn Extension int vasprintf (char **@var{resptr}, char *@var{format}, va_list @var{args}) |
|
|
|
|
|
|
|
Like @code{vsprintf}, but instead of passing a pointer to a buffer, |
|
|
|
you pass a pointer to a pointer. This function will compute the size |
|
|
|
of the buffer needed, allocate memory with @code{malloc}, and store a |
|
|
|
pointer to the allocated memory in @code{*@var{resptr}}. The value |
|
|
|
returned is the same as @code{vsprintf} would return. If memory could |
|
|
|
not be allocated, zero is returned and @code{NULL} is stored in |
|
|
|
@code{*@var{resptr}}. |
|
|
|
|
|
|
|
@end deftypefn |
|
|
|
|
|
|
|
@c vfork.c:6 |
|
|
|
@deftypefn Supplemental int vfork (void) |
|
|
|
|
|
|
|
|