mirror of git://sourceware.org/git/glibc.git
Update.
2002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com> * Examples/ex9.c (main): Use list of children and join them. (thread): Do not call exit.
This commit is contained in:
parent
8b8cc76fa4
commit
95fdc6a0f6
|
@ -1,3 +1,8 @@
|
||||||
|
2002-06-19 Steven Munroe <sjmunroe@vnet.ibm.com>
|
||||||
|
|
||||||
|
* Examples/ex9.c (main): Use list of children and join them.
|
||||||
|
(thread): Do not call exit.
|
||||||
|
|
||||||
2002-06-20 Ulrich Drepper <drepper@redhat.com>
|
2002-06-20 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
|
* spinlock.c (wait_node_alloc): We cannot use compare-and-exchange.
|
||||||
|
|
|
@ -32,7 +32,8 @@ static pthread_barrier_t barrier;
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
{
|
{
|
||||||
pthread_t th;
|
pthread_t th;
|
||||||
|
pthread_t thread_list[NUM_THREADS];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (pthread_barrier_init (&barrier, NULL, NUM_THREADS + 1) != 0)
|
if (pthread_barrier_init (&barrier, NULL, NUM_THREADS + 1) != 0)
|
||||||
|
@ -40,12 +41,17 @@ main (void)
|
||||||
|
|
||||||
for (i = 0; i < NUM_THREADS; i++)
|
for (i = 0; i < NUM_THREADS; i++)
|
||||||
{
|
{
|
||||||
if (pthread_create (&th, NULL, thread, NULL) != 0)
|
if (pthread_create (&thread_list[i], NULL, thread, NULL) != 0)
|
||||||
error (EXIT_FAILURE, 0, "cannot create thread");
|
error (EXIT_FAILURE, 0, "cannot create thread");
|
||||||
}
|
}
|
||||||
|
|
||||||
(void) thread (NULL);
|
(void) thread (NULL);
|
||||||
/* notreached */
|
|
||||||
|
for (i = 0; i < NUM_THREADS; i++)
|
||||||
|
{
|
||||||
|
pthread_join(thread_list[i], NULL);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +93,7 @@ thread (void *arg)
|
||||||
printf ("%04d: last serial thread %lu terminating process\n",
|
printf ("%04d: last serial thread %lu terminating process\n",
|
||||||
++linecount, (unsigned long) self);
|
++linecount, (unsigned long) self);
|
||||||
funlockfile (stdout);
|
funlockfile (stdout);
|
||||||
exit (0);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
2002-06-29 Ulrich Drepper <drepper@redhat.com>
|
2002-06-29 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* locales/mt_MT: Add locale-specific collation info.
|
||||||
|
Patch by Ramon Casha <ramon.casha@linux.org.mt> [PR libc/3701].
|
||||||
|
|
||||||
* locales/en_AU: Add am/pm support.
|
* locales/en_AU: Add am/pm support.
|
||||||
Patch partly by maffew@cat.org.au [PR libc/3911].
|
Patch partly by maffew@cat.org.au [PR libc/3911].
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,9 @@ escape_char /
|
||||||
% Maltese language locale for Malta.
|
% Maltese language locale for Malta.
|
||||||
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
|
% Contributed by Kentaroh Noji <knoji@jp.ibm.com> and
|
||||||
% Tetsuji Orita <orita@jp.ibm.com>.
|
% Tetsuji Orita <orita@jp.ibm.com>.
|
||||||
|
%
|
||||||
|
% collating order changes by Ramon Casha <ramon.casha@linux.org.mt>
|
||||||
|
% and Pablo Saratxaga <pablo@mandrakesoft.com> -- 2002-05-08
|
||||||
|
|
||||||
LC_IDENTIFICATION
|
LC_IDENTIFICATION
|
||||||
title "Maltese language locale for Malta"
|
title "Maltese language locale for Malta"
|
||||||
|
@ -37,9 +40,85 @@ END LC_CTYPE
|
||||||
|
|
||||||
LC_COLLATE
|
LC_COLLATE
|
||||||
|
|
||||||
|
% a b c c. d e f g. g gh/ h h/ i ie j k l m n o p q r s t u v w x y z. z
|
||||||
|
|
||||||
% Copy the template from ISO/IEC 14651
|
% Copy the template from ISO/IEC 14651
|
||||||
copy "iso14651_t1"
|
copy "iso14651_t1"
|
||||||
|
|
||||||
|
collating-symbol <c.>
|
||||||
|
collating-symbol <g.>
|
||||||
|
collating-symbol <h->
|
||||||
|
collating-symbol <z.>
|
||||||
|
|
||||||
|
collating-symbol <g-h--mt>
|
||||||
|
collating-element <G-H-> from "<U0047><U0126>"
|
||||||
|
collating-element <g-h-> from "<U0067><U0127>"
|
||||||
|
collating-element <G-h-> from "<U0047><U0127>"
|
||||||
|
collating-element <g-H-> from "<U0067><U0126>"
|
||||||
|
|
||||||
|
collating-symbol <i-e-mt>
|
||||||
|
collating-element <I-E> from "<U0049><U0045>"
|
||||||
|
collating-element <i-e> from "<U0069><U0065>"
|
||||||
|
collating-element <I-e> from "<U0049><U0065>"
|
||||||
|
collating-element <i-E> from "<U0069><U0045>"
|
||||||
|
|
||||||
|
collating-symbol <CAP-MIN>
|
||||||
|
collating-symbol <MIN-CAP>
|
||||||
|
|
||||||
|
reorder-after <MIN>
|
||||||
|
<MIN-CAP>
|
||||||
|
reorder-after <CAP>
|
||||||
|
<CAP-MIN>
|
||||||
|
|
||||||
|
reorder-after <c>
|
||||||
|
<c.>
|
||||||
|
reorder-after <f>
|
||||||
|
<g.>
|
||||||
|
reorder-after <g>
|
||||||
|
<g-h--mt>
|
||||||
|
reorder-after <h>
|
||||||
|
<h->
|
||||||
|
reorder-after <i>
|
||||||
|
<i-e-mt>
|
||||||
|
reorder-after <y>
|
||||||
|
<z.>
|
||||||
|
|
||||||
|
reorder-after <U0063>
|
||||||
|
<U010B> <c.>;<PCT>;<MIN>;IGNORE
|
||||||
|
reorder-after <U0043>
|
||||||
|
<U010A> <c.>;<PCT>;<CAP>;IGNORE
|
||||||
|
|
||||||
|
reorder-after <U0066>
|
||||||
|
<U0121> <g.>;<PCT>;<MIN>;IGNORE
|
||||||
|
reorder-after <U0046>
|
||||||
|
<U0120> <g.>;<PCT>;<CAP>;IGNORE
|
||||||
|
|
||||||
|
reorder-after <U0067>
|
||||||
|
<g-h-> <g-h--mt>;<PCL>;<MIN>;IGNORE
|
||||||
|
<g-H-> <g-h--mt>;<PCL>;<MIN-CAP>;IGNORE
|
||||||
|
reorder-after <U0047>
|
||||||
|
<G-H-> <g-h--mt>;<PCL>;<CAP>;IGNORE
|
||||||
|
<G-h-> <g-h--mt>;<PCL>;<CAP-MIN>;IGNORE
|
||||||
|
|
||||||
|
reorder-after <U0068>
|
||||||
|
<U0127> <h->;<OBL>;<MIN>;IGNORE
|
||||||
|
reorder-after <U0048>
|
||||||
|
<U0126> <h->;<OBL>;<CAP>;IGNORE
|
||||||
|
|
||||||
|
reorder-after <U0069>
|
||||||
|
<i-e> <i-e-mt>;<PCL>;<MIN>;IGNORE
|
||||||
|
<i-E> <i-e-mt>;<PCL>;<MIN-CAP>;IGNORE
|
||||||
|
reorder-after <U0049>
|
||||||
|
<I-E> <i-e-mt>;<PCL>;<CAP>;IGNORE
|
||||||
|
<I-e> <i-e-mt>;<PCL>;<CAP-MIN>;IGNORE
|
||||||
|
|
||||||
|
reorder-after <U0079>
|
||||||
|
<U017C> <z.>;<PCT>;<MIN>;IGNORE
|
||||||
|
reorder-after <U0059>
|
||||||
|
<U017B> <z.>;<PCT>;<CAP>;IGNORE
|
||||||
|
|
||||||
|
reorder-end
|
||||||
|
|
||||||
END LC_COLLATE
|
END LC_COLLATE
|
||||||
|
|
||||||
LC_MONETARY
|
LC_MONETARY
|
||||||
|
|
|
@ -467,7 +467,7 @@ Here's an example that uses both, for different args:
|
||||||
|
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
...
|
@dots{}
|
||||||
case ARGP_KEY_ARG:
|
case ARGP_KEY_ARG:
|
||||||
if (@var{state}->arg_num == 0)
|
if (@var{state}->arg_num == 0)
|
||||||
/* First argument */
|
/* First argument */
|
||||||
|
|
|
@ -755,9 +755,9 @@ is a simple example of the way to use @code{fetestexcept}:
|
||||||
feclearexcept (FE_ALL_EXCEPT);
|
feclearexcept (FE_ALL_EXCEPT);
|
||||||
f = compute ();
|
f = compute ();
|
||||||
raised = fetestexcept (FE_OVERFLOW | FE_INVALID);
|
raised = fetestexcept (FE_OVERFLOW | FE_INVALID);
|
||||||
if (raised & FE_OVERFLOW) @{ /* ... */ @}
|
if (raised & FE_OVERFLOW) @{ /* @dots{} */ @}
|
||||||
if (raised & FE_INVALID) @{ /* ... */ @}
|
if (raised & FE_INVALID) @{ /* @dots{} */ @}
|
||||||
/* ... */
|
/* @dots{} */
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@ -2396,8 +2396,8 @@ or to the largest representable value if the floating-point format
|
||||||
doesn't support infinities. You can prepend a @code{"+"} or @code{"-"}
|
doesn't support infinities. You can prepend a @code{"+"} or @code{"-"}
|
||||||
to specify the sign. Case is ignored when scanning these strings.
|
to specify the sign. Case is ignored when scanning these strings.
|
||||||
|
|
||||||
The strings @code{"nan"} and @code{"nan(@var{chars...})"} are converted
|
The strings @code{"nan"} and @code{"nan(@var{chars@dots{}})"} are converted
|
||||||
to NaN. Again, case is ignored. If @var{chars...} are provided, they
|
to NaN. Again, case is ignored. If @var{chars@dots{}} are provided, they
|
||||||
are used in some unspecified fashion to select a particular
|
are used in some unspecified fashion to select a particular
|
||||||
representation of NaN (there can be several).
|
representation of NaN (there can be several).
|
||||||
|
|
||||||
|
|
|
@ -177,9 +177,9 @@ code like
|
||||||
@smallexample
|
@smallexample
|
||||||
@{
|
@{
|
||||||
int c;
|
int c;
|
||||||
...
|
@dots{}
|
||||||
while ((c = getc (fp)) < 0)
|
while ((c = getc (fp)) < 0)
|
||||||
...
|
@dots{}
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@ -190,9 +190,9 @@ are used:
|
||||||
@smallexample
|
@smallexample
|
||||||
@{
|
@{
|
||||||
wint_t c;
|
wint_t c;
|
||||||
...
|
@dots{}
|
||||||
while ((c = wgetc (fp)) != WEOF)
|
while ((c = wgetc (fp)) != WEOF)
|
||||||
...
|
@dots{}
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ problem:
|
||||||
while (! feof (fp))
|
while (! feof (fp))
|
||||||
@{
|
@{
|
||||||
fread (&buf[len], 1, MB_CUR_MAX - len, fp);
|
fread (&buf[len], 1, MB_CUR_MAX - len, fp);
|
||||||
/* @r{... process} buf */
|
/* @r{@dots{} process} buf */
|
||||||
len -= used;
|
len -= used;
|
||||||
@}
|
@}
|
||||||
@}
|
@}
|
||||||
|
@ -491,7 +491,7 @@ clearing the whole variable with code such as follows:
|
||||||
mbstate_t state;
|
mbstate_t state;
|
||||||
memset (&state, '\0', sizeof (state));
|
memset (&state, '\0', sizeof (state));
|
||||||
/* @r{from now on @var{state} can be used.} */
|
/* @r{from now on @var{state} can be used.} */
|
||||||
...
|
@dots{}
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@ -523,7 +523,7 @@ Code using @code{mbsinit} often looks similar to this:
|
||||||
mbstate_t state;
|
mbstate_t state;
|
||||||
memset (&state, '\0', sizeof (state));
|
memset (&state, '\0', sizeof (state));
|
||||||
/* @r{Use @var{state}.} */
|
/* @r{Use @var{state}.} */
|
||||||
...
|
@dots{}
|
||||||
if (! mbsinit (&state))
|
if (! mbsinit (&state))
|
||||||
@{
|
@{
|
||||||
/* @r{Emit code to return to initial state.} */
|
/* @r{Emit code to return to initial state.} */
|
||||||
|
@ -531,7 +531,7 @@ Code using @code{mbsinit} often looks similar to this:
|
||||||
const wchar_t *srcp = empty;
|
const wchar_t *srcp = empty;
|
||||||
wcsrtombs (outbuf, &srcp, outbuflen, &state);
|
wcsrtombs (outbuf, &srcp, outbuflen, &state);
|
||||||
@}
|
@}
|
||||||
...
|
@dots{}
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
@ -911,7 +911,7 @@ this solution is unsuitable, there is a very slow but more accurate
|
||||||
solution.
|
solution.
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
...
|
@dots{}
|
||||||
if (len < MB_CUR_LEN)
|
if (len < MB_CUR_LEN)
|
||||||
@{
|
@{
|
||||||
mbstate_t temp_state;
|
mbstate_t temp_state;
|
||||||
|
@ -925,7 +925,7 @@ solution.
|
||||||
return NULL;
|
return NULL;
|
||||||
@}
|
@}
|
||||||
@}
|
@}
|
||||||
...
|
@dots{}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
Here we perform the conversion that might overflow the buffer so that
|
Here we perform the conversion that might overflow the buffer so that
|
||||||
|
@ -2395,7 +2395,7 @@ The @code{int __internal_use} element is mostly used together with
|
||||||
if (!data->__internal_use
|
if (!data->__internal_use
|
||||||
&& data->__invocation_counter == 0)
|
&& data->__invocation_counter == 0)
|
||||||
/* @r{Emit prolog.} */
|
/* @r{Emit prolog.} */
|
||||||
...
|
@dots{}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
This element must never be modified.
|
This element must never be modified.
|
||||||
|
@ -2708,7 +2708,7 @@ gconv (struct __gconv_step *step, struct __gconv_step_data *data,
|
||||||
@{
|
@{
|
||||||
struct __gconv_step *next_step = step + 1;
|
struct __gconv_step *next_step = step + 1;
|
||||||
struct __gconv_step_data *next_data = data + 1;
|
struct __gconv_step_data *next_data = data + 1;
|
||||||
...
|
@dots{}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
The @code{next_step} pointer references the next step information and
|
The @code{next_step} pointer references the next step information and
|
||||||
|
|
|
@ -625,7 +625,7 @@ is_in_class (int c, const char *class)
|
||||||
return isalpha (c);
|
return isalpha (c);
|
||||||
if (strcmp (class, "cntrl") == 0)
|
if (strcmp (class, "cntrl") == 0)
|
||||||
return iscntrl (c);
|
return iscntrl (c);
|
||||||
...
|
@dots{}
|
||||||
return 0;
|
return 0;
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
|
@ -453,7 +453,7 @@ Code to call @code{readdir_r} could look like this:
|
||||||
@} u;
|
@} u;
|
||||||
|
|
||||||
if (readdir_r (dir, &u.d, &res) == 0)
|
if (readdir_r (dir, &u.d, &res) == 0)
|
||||||
...
|
@dots{}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1501,7 +1501,7 @@ modify the attributes of a file.
|
||||||
and what their values mean.
|
and what their values mean.
|
||||||
* Reading Attributes:: How to read the attributes of a file.
|
* Reading Attributes:: How to read the attributes of a file.
|
||||||
* Testing File Type:: Distinguishing ordinary files,
|
* Testing File Type:: Distinguishing ordinary files,
|
||||||
directories, links...
|
directories, links@dots{}
|
||||||
* File Owner:: How ownership for new files is determined,
|
* File Owner:: How ownership for new files is determined,
|
||||||
and how to change it.
|
and how to change it.
|
||||||
* Permission Bits:: How information about a file's access
|
* Permission Bits:: How information about a file's access
|
||||||
|
|
|
@ -45,7 +45,7 @@ GNU Make, and possibly others. @xref{Tools for Compilation}, below.
|
||||||
GNU libc can be compiled in the source directory, but we strongly advise
|
GNU libc can be compiled in the source directory, but we strongly advise
|
||||||
building it in a separate build directory. For example, if you have
|
building it in a separate build directory. For example, if you have
|
||||||
unpacked
|
unpacked
|
||||||
the glibc sources in @file{/src/gnu/glibc-2.2.0}, create a directory
|
the glibc sources in @file{/src/gnu/glibc-2.3}, create a directory
|
||||||
@file{/src/gnu/glibc-build} to put the object files in. This allows
|
@file{/src/gnu/glibc-build} to put the object files in. This allows
|
||||||
removing the whole build directory in case an error occurs, which is the
|
removing the whole build directory in case an error occurs, which is the
|
||||||
safest way to get a fresh start and should always be done.
|
safest way to get a fresh start and should always be done.
|
||||||
|
@ -54,7 +54,7 @@ From your object directory, run the shell script @file{configure} located
|
||||||
at the top level of the source tree. In the scenario above, you'd type
|
at the top level of the source tree. In the scenario above, you'd type
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
$ ../glibc-2.2.0/configure @var{args...}
|
$ ../glibc-2.3/configure @var{args@dots{}}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
Please note that even if you're building in a separate build directory,
|
Please note that even if you're building in a separate build directory,
|
||||||
|
@ -64,9 +64,9 @@ directory, especially some files in the manual subdirectory.
|
||||||
@noindent
|
@noindent
|
||||||
@code{configure} takes many options, but you can get away with knowing
|
@code{configure} takes many options, but you can get away with knowing
|
||||||
only two: @samp{--prefix} and @samp{--enable-add-ons}. The
|
only two: @samp{--prefix} and @samp{--enable-add-ons}. The
|
||||||
@code{--prefix} option tells @code{configure} where you want glibc
|
@code{--prefix} option tells @code{configure} where you want glibc
|
||||||
installed. This defaults to @file{/usr/local}. The
|
installed. This defaults to @file{/usr/local}. The
|
||||||
@samp{--enable-add-ons} option tells @code{configure} to use all the
|
@samp{--enable-add-ons} option tells @code{configure} to use all the
|
||||||
add-on bundles it finds in the source directory. Since important
|
add-on bundles it finds in the source directory. Since important
|
||||||
functionality is provided in add-ons, you should always specify this
|
functionality is provided in add-ons, you should always specify this
|
||||||
option.
|
option.
|
||||||
|
|
|
@ -1201,7 +1201,7 @@ least also in the IBM AIX library.
|
||||||
This function would normally be used like this:
|
This function would normally be used like this:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
...
|
@dots{}
|
||||||
/* @r{Use a safe default.} */
|
/* @r{Use a safe default.} */
|
||||||
_Bool doit = false;
|
_Bool doit = false;
|
||||||
|
|
||||||
|
|
|
@ -751,7 +751,7 @@ End with a line saying just "end".
|
||||||
>call mcheck(0)
|
>call mcheck(0)
|
||||||
>continue
|
>continue
|
||||||
>end
|
>end
|
||||||
(gdb) ...
|
(gdb) @dots{}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
This will however only work if no initialization function of any object
|
This will however only work if no initialization function of any object
|
||||||
|
@ -1003,7 +1003,7 @@ my_free_hook (void *ptr, const void *caller)
|
||||||
|
|
||||||
main ()
|
main ()
|
||||||
@{
|
@{
|
||||||
...
|
@dots{}
|
||||||
@}
|
@}
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
|
|
|
@ -546,7 +546,7 @@ any one time is equal to the number of CPUs, you can easily extrapolate
|
||||||
the information.
|
the information.
|
||||||
|
|
||||||
The functions described in this section are all defined by the POSIX.1
|
The functions described in this section are all defined by the POSIX.1
|
||||||
and POSIX.1b standards (the @code{sched...} functions are POSIX.1b).
|
and POSIX.1b standards (the @code{sched@dots{}} functions are POSIX.1b).
|
||||||
However, POSIX does not define any semantics for the values that these
|
However, POSIX does not define any semantics for the values that these
|
||||||
functions get and set. In this chapter, the semantics are based on the
|
functions get and set. In this chapter, the semantics are based on the
|
||||||
Linux kernel's implementation of the POSIX standard. As you will see,
|
Linux kernel's implementation of the POSIX standard. As you will see,
|
||||||
|
@ -656,7 +656,7 @@ the high priority process group. All the priority in the world won't
|
||||||
stop an interrupt handler from running and delivering a signal to the
|
stop an interrupt handler from running and delivering a signal to the
|
||||||
process if you hit Control-C.
|
process if you hit Control-C.
|
||||||
|
|
||||||
Some systems use absolute priority as a means of allocating a fixed
|
Some systems use absolute priority as a means of allocating a fixed
|
||||||
percentage of CPU time to a process. To do this, a super high priority
|
percentage of CPU time to a process. To do this, a super high priority
|
||||||
privileged process constantly monitors the process' CPU usage and raises
|
privileged process constantly monitors the process' CPU usage and raises
|
||||||
its absolute priority when the process isn't getting its entitled share
|
its absolute priority when the process isn't getting its entitled share
|
||||||
|
|
|
@ -657,7 +657,7 @@ Example:
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
...
|
@dots{}
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
@ -677,7 +677,7 @@ following preferable code:
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
...
|
@dots{}
|
||||||
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,7 @@ sometimes not possible):
|
||||||
@smallexample
|
@smallexample
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
@{
|
@{
|
||||||
...
|
@dots{}
|
||||||
flockfile (fp);
|
flockfile (fp);
|
||||||
fputs ("This is test number ", fp);
|
fputs ("This is test number ", fp);
|
||||||
fprintf (fp, "%d\n", test);
|
fprintf (fp, "%d\n", test);
|
||||||
|
@ -2450,7 +2450,7 @@ For example:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
#define myprintf(a, b, c, d, e, rest...) \
|
#define myprintf(a, b, c, d, e, rest...) \
|
||||||
printf (mytemplate , ## rest...)
|
printf (mytemplate , ## rest)
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
@ -5295,7 +5295,7 @@ the following in the environment before calling the @code{fmtmsg} function
|
||||||
the first time:
|
the first time:
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
MSGVERB=@var{keyword}[:@var{keyword}[:...]]
|
MSGVERB=@var{keyword}[:@var{keyword}[:@dots{}]]
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
Valid @var{keyword}s are @code{label}, @code{severity}, @code{text},
|
Valid @var{keyword}s are @code{label}, @code{severity}, @code{text},
|
||||||
|
@ -5314,7 +5314,7 @@ described above are available. Any other numeric value would make
|
||||||
If the user puts @code{SEV_LEVEL} with a format like
|
If the user puts @code{SEV_LEVEL} with a format like
|
||||||
|
|
||||||
@smallexample
|
@smallexample
|
||||||
SEV_LEVEL=[@var{description}[:@var{description}[:...]]]
|
SEV_LEVEL=[@var{description}[:@var{description}[:@dots{}]]]
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
|
|
@ -1435,7 +1435,7 @@ character, not the number of bytes.
|
||||||
Also the format string @var{template} is a wide character string. Since
|
Also the format string @var{template} is a wide character string. Since
|
||||||
all characters needed to specify the format string are in the basic
|
all characters needed to specify the format string are in the basic
|
||||||
character set it is portably possible to write format strings in the C
|
character set it is portably possible to write format strings in the C
|
||||||
source code using the @code{L"..."} notation. The parameter
|
source code using the @code{L"@dots{}"} notation. The parameter
|
||||||
@var{brokentime} has the same meaning as in the @code{strftime} call.
|
@var{brokentime} has the same meaning as in the @code{strftime} call.
|
||||||
|
|
||||||
The @code{wcsftime} function supports the same flags, modifiers, and
|
The @code{wcsftime} function supports the same flags, modifiers, and
|
||||||
|
|
Loading…
Reference in New Issue