mirror of https://github.com/mkerrisk/man-pages
243 lines
10 KiB
Plaintext
243 lines
10 KiB
Plaintext
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
|
.TH "<wchar.h>" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
.\" <wchar.h>
|
|
.SH NAME
|
|
wchar.h \- wide-character handling
|
|
.SH SYNOPSIS
|
|
.LP
|
|
\fB#include <wchar.h>\fP
|
|
.SH DESCRIPTION
|
|
.LP
|
|
Some of the functionality described on this reference page extends
|
|
the ISO\ C standard. Applications shall define
|
|
the appropriate feature test macro (see the System Interfaces volume
|
|
of IEEE\ Std\ 1003.1-2001, Section 2.2, The Compilation Environment)
|
|
to enable the visibility of these symbols in this
|
|
header.
|
|
.LP
|
|
The \fI<wchar.h>\fP header shall define the following types:
|
|
.TP 7
|
|
\fBwchar_t\fP
|
|
As described in \fI<stddef.h>\fP .
|
|
.TP 7
|
|
\fBwint_t\fP
|
|
An integer type capable of storing any valid value of \fBwchar_t\fP
|
|
or WEOF.
|
|
.TP 7
|
|
\fBwctype_t\fP
|
|
A scalar type of a data object that can hold values which represent
|
|
locale-specific character classification.
|
|
.TP 7
|
|
\fBmbstate_t\fP
|
|
An object type other than an array type that can hold the conversion
|
|
state information necessary to convert between sequences
|
|
of (possibly multi-byte) characters and wide characters. \ If a
|
|
codeset is being used such that an \fBmbstate_t\fP needs to
|
|
preserve more than 2 levels of reserved state, the results are unspecified.
|
|
.TP 7
|
|
\fBFILE\fP
|
|
As described in \fI<stdio.h>\fP .
|
|
.TP 7
|
|
\fBsize_t\fP
|
|
As described in \fI<stddef.h>\fP .
|
|
.TP 7
|
|
\fBva_list\fP
|
|
As described in \fI<stdarg.h>\fP .
|
|
.sp
|
|
.LP
|
|
The implementation shall support one or more programming environments
|
|
in which the width of \fBwint_t\fP is no greater than the
|
|
width of type \fBlong\fP. The names of these programming environments
|
|
can be obtained using the \fIconfstr\fP() function or the \fIgetconf\fP
|
|
utility.
|
|
.LP
|
|
The following shall be declared as functions and may also be defined
|
|
as macros. Function prototypes shall be provided.
|
|
.sp
|
|
.RS
|
|
.nf
|
|
|
|
\fBwint_t btowc(int);
|
|
wint_t fgetwc(FILE *);
|
|
wchar_t *fgetws(wchar_t *restrict, int, FILE *restrict);
|
|
wint_t fputwc(wchar_t, FILE *);
|
|
int fputws(const wchar_t *restrict, FILE *restrict);
|
|
int fwide(FILE *, int);
|
|
int fwprintf(FILE *restrict, const wchar_t *restrict, ...);
|
|
int fwscanf(FILE *restrict, const wchar_t *restrict, ...);
|
|
wint_t getwc(FILE *);
|
|
wint_t getwchar(void);
|
|
|
|
int iswalnum(wint_t);
|
|
int iswalpha(wint_t);
|
|
int iswcntrl(wint_t);
|
|
int iswctype(wint_t, wctype_t);
|
|
int iswdigit(wint_t);
|
|
int iswgraph(wint_t);
|
|
int iswlower(wint_t);
|
|
int iswprint(wint_t);
|
|
int iswpunct(wint_t);
|
|
int iswspace(wint_t);
|
|
int iswupper(wint_t);
|
|
int iswxdigit(wint_t);
|
|
|
|
size_t mbrlen(const char *restrict, size_t, mbstate_t *restrict);
|
|
size_t mbrtowc(wchar_t *restrict, const char *restrict, size_t,
|
|
mbstate_t *restrict);
|
|
int mbsinit(const mbstate_t *);
|
|
size_t mbsrtowcs(wchar_t *restrict, const char **restrict, size_t,
|
|
mbstate_t *restrict);
|
|
wint_t putwc(wchar_t, FILE *);
|
|
wint_t putwchar(wchar_t);
|
|
int swprintf(wchar_t *restrict, size_t,
|
|
const wchar_t *restrict, ...);
|
|
int swscanf(const wchar_t *restrict,
|
|
const wchar_t *restrict, ...);
|
|
|
|
wint_t towlower(wint_t);
|
|
wint_t towupper(wint_t);
|
|
|
|
wint_t ungetwc(wint_t, FILE *);
|
|
int vfwprintf(FILE *restrict, const wchar_t *restrict, va_list);
|
|
int vfwscanf(FILE *restrict, const wchar_t *restrict, va_list);
|
|
int vwprintf(const wchar_t *restrict, va_list);
|
|
int vswprintf(wchar_t *restrict, size_t,
|
|
const wchar_t *restrict, va_list);
|
|
int vswscanf(const wchar_t *restrict, const wchar_t *restrict,
|
|
va_list);
|
|
int vwscanf(const wchar_t *restrict, va_list);
|
|
size_t wcrtomb(char *restrict, wchar_t, mbstate_t *restrict);
|
|
wchar_t *wcscat(wchar_t *restrict, const wchar_t *restrict);
|
|
wchar_t *wcschr(const wchar_t *, wchar_t);
|
|
int wcscmp(const wchar_t *, const wchar_t *);
|
|
int wcscoll(const wchar_t *, const wchar_t *);
|
|
wchar_t *wcscpy(wchar_t *restrict, const wchar_t *restrict);
|
|
size_t wcscspn(const wchar_t *, const wchar_t *);
|
|
size_t wcsftime(wchar_t *restrict, size_t,
|
|
const wchar_t *restrict, const struct tm *restrict);
|
|
size_t wcslen(const wchar_t *);
|
|
wchar_t *wcsncat(wchar_t *restrict, const wchar_t *restrict, size_t);
|
|
int wcsncmp(const wchar_t *, const wchar_t *, size_t);
|
|
wchar_t *wcsncpy(wchar_t *restrict, const wchar_t *restrict, size_t);
|
|
wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
|
|
wchar_t *wcsrchr(const wchar_t *, wchar_t);
|
|
size_t wcsrtombs(char *restrict, const wchar_t **restrict,
|
|
size_t, mbstate_t *restrict);
|
|
size_t wcsspn(const wchar_t *, const wchar_t *);
|
|
wchar_t *wcsstr(const wchar_t *restrict, const wchar_t *restrict);
|
|
double wcstod(const wchar_t *restrict, wchar_t **restrict);
|
|
float wcstof(const wchar_t *restrict, wchar_t **restrict);
|
|
wchar_t *wcstok(wchar_t *restrict, const wchar_t *restrict,
|
|
wchar_t **restrict);
|
|
long wcstol(const wchar_t *restrict, wchar_t **restrict, int);
|
|
long double wcstold(const wchar_t *restrict, wchar_t **restrict);
|
|
long long wcstoll(const wchar_t *restrict, wchar_t **restrict, int);
|
|
unsigned long wcstoul(const wchar_t *restrict, wchar_t **restrict, int);
|
|
unsigned long long
|
|
wcstoull(const wchar_t *restrict, wchar_t **restrict, int);
|
|
|
|
wchar_t *wcswcs(const wchar_t *, const wchar_t *);
|
|
int wcswidth(const wchar_t *, size_t);
|
|
|
|
size_t wcsxfrm(wchar_t *restrict, const wchar_t *restrict, size_t);
|
|
int wctob(wint_t);
|
|
|
|
wctype_t wctype(const char *);
|
|
int wcwidth(wchar_t);
|
|
|
|
wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
|
|
int wmemcmp(const wchar_t *, const wchar_t *, size_t);
|
|
wchar_t *wmemcpy(wchar_t *restrict, const wchar_t *restrict, size_t);
|
|
wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
|
|
wchar_t *wmemset(wchar_t *, wchar_t, size_t);
|
|
int wprintf(const wchar_t *restrict, ...);
|
|
int wscanf(const wchar_t *restrict, ...);
|
|
\fP
|
|
.fi
|
|
.RE
|
|
.LP
|
|
The \fI<wchar.h>\fP header shall define the following macros:
|
|
.TP 7
|
|
WCHAR_MAX
|
|
The maximum value representable by an object of type \fBwchar_t\fP.
|
|
.TP 7
|
|
WCHAR_MIN
|
|
The minimum value representable by an object of type \fBwchar_t\fP.
|
|
.TP 7
|
|
WEOF
|
|
Constant expression of type \fBwint_t\fP that is returned by several
|
|
WP functions to indicate end-of-file.
|
|
.TP 7
|
|
NULL
|
|
As described in \fI<stddef.h>\fP .
|
|
.sp
|
|
.LP
|
|
The tag \fBtm\fP shall be declared as naming an incomplete structure
|
|
type, the contents of which are described in the header \fI<time.h>\fP
|
|
\&.
|
|
.LP
|
|
Inclusion of the \fI<wchar.h>\fP header may make visible all symbols
|
|
from the headers \fI<ctype.h>\fP, \fI<string.h>\fP, \fI<stdarg.h>\fP,
|
|
\fI<stddef.h>\fP, \fI<stdio.h>\fP, \fI<stdlib.h>\fP, and \fI<time.h>\fP.
|
|
.LP
|
|
\fIThe following sections are informative.\fP
|
|
.SH APPLICATION USAGE
|
|
.LP
|
|
The \fIiswblank\fP() function was a late addition to the ISO\ C standard
|
|
and was
|
|
introduced at the same time as the ISO\ C standard introduced \fI<wctype.h>\fP,
|
|
which contains all of the \fIisw*\fP() functions. The Open Group Base
|
|
Specifications had
|
|
previously aligned with the MSE working draft and had introduced the
|
|
rest of the \fIisw*\fP()
|
|
functions into \fI<wchar.h>\fP. For backwards-compatibility, the original
|
|
set of
|
|
\fIisw*\fP() functions, without \fIiswblank\fP(), are
|
|
permitted (as an XSI extension) in \fI<wchar.h>\fP. For maximum portability,
|
|
applications should include \fI<wctype.h>\fP in order to obtain declarations
|
|
for the
|
|
\fIisw*\fP() functions.
|
|
.SH RATIONALE
|
|
.LP
|
|
In the ISO\ C standard, the symbols referenced as XSI extensions are
|
|
in \fI<wctype.h>\fP. Their presence here is thus an extension.
|
|
.SH FUTURE DIRECTIONS
|
|
.LP
|
|
None.
|
|
.SH SEE ALSO
|
|
.LP
|
|
\fI<ctype.h>\fP , \fI<stdarg.h>\fP , \fI<stddef.h>\fP , \fI<stdio.h>\fP
|
|
, \fI<stdlib.h>\fP , \fI<string.h>\fP , \fI<time.h>\fP , \fI<wctype.h>\fP
|
|
, the System Interfaces volume of
|
|
IEEE\ Std\ 1003.1-2001, \fIbtowc\fP(), \fIconfstr\fP(), \fIfgetwc\fP(),
|
|
\fIfgetws\fP(), \fIfputwc\fP(), \fIfputws\fP(), \fIfwide\fP(), \fIfwprintf\fP(),
|
|
\fIfwscanf\fP(), \fIgetwc\fP(), \fIgetwchar\fP(), \fIiswalnum\fP(),
|
|
\fIiswalpha\fP(), \fIiswcntrl\fP(), \fIiswctype\fP(), \fIiswdigit\fP(),
|
|
\fIiswgraph\fP(), \fIiswlower\fP(), \fIiswprint\fP(), \fIiswpunct\fP(),
|
|
\fIiswspace\fP(), \fIiswupper\fP(), \fIiswxdigit\fP(), \fIiswctype\fP(),
|
|
\fImbsinit\fP(), \fImbrlen\fP(), \fImbrtowc\fP(), \fImbsrtowcs\fP(),
|
|
\fIputwc\fP(), \fIputwchar\fP(), \fIswprintf\fP(), \fIswscanf\fP(),
|
|
\fItowlower\fP(), \fItowupper\fP(), \fIungetwc\fP(), \fIvfwprintf\fP(),
|
|
\fIvfwscanf\fP(), \fIvswprintf\fP(), \fIvswscanf\fP(), \fIvwscanf\fP(),
|
|
\fIwcrtomb\fP(), \fIwcsrtombs\fP(), \fIwcscat\fP(), \fIwcschr\fP(),
|
|
\fIwcscmp\fP(), \fIwcscoll\fP(), \fIwcscpy\fP(), \fIwcscspn\fP(),
|
|
\fIwcsftime\fP(), \fIwcslen\fP(), \fIwcsncat\fP(), \fIwcsncmp\fP(),
|
|
\fIwcsncpy\fP(), \fIwcspbrk\fP(), \fIwcsrchr\fP(), \fIwcsspn\fP(),
|
|
\fIwcsstr\fP(), \fIwcstod\fP(), \fIwcstof\fP(), \fIwcstok\fP(), \fIwcstol\fP(),
|
|
\fIwcstold\fP(), \fIwcstoll\fP(), \fIwcstoul\fP(), \fIwcstoull\fP(),
|
|
\fIwcswcs\fP(), \fIwcswidth\fP(), \fIwcsxfrm\fP(), \fIwctob\fP(),
|
|
\fIwctype\fP(), \fIwcwidth\fP(), \fIwmemchr\fP(), \fIwmemcmp\fP(),
|
|
\fIwmemcpy\fP(), \fIwmemmove\fP(), \fIwmemset\fP(), \fIwprintf\fP(),
|
|
\fIwscanf\fP(), the Shell and Utilities volume of IEEE\ Std\ 1003.1-2001,
|
|
\fIgetconf\fP
|
|
.SH COPYRIGHT
|
|
Portions of this text are reprinted and reproduced in electronic form
|
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
|
event of any discrepancy between this version and the original IEEE and
|
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
|
is the referee document. The original Standard can be obtained online at
|
|
http://www.opengroup.org/unix/online.html .
|