ref: 7db7502fee313e42ccf0506a0f0a65db26aa883a
parent: 9a9ce743c36439d96753c68bbdb8de743743dcc4
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Wed Mar 16 04:00:10 EDT 2022
doc: Add wchar(3) man page This is the man page that gives a brief description to the content of the wchar.h header.
--- /dev/null
+++ b/doc/man3/wchar.h.3
@@ -1,0 +1,166 @@
+.TH wchar.h 3
+.SH NAME
+wchar.h - wide char opetarions
+.SH SYPNOSIS
+#include <wchar.h>
+
+The wchar.h header declares the following functions:
+
+.nf
+int vswscanf(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg);
+int vwprintf(const wchar_t * restrict format, va_list arg);
+int vwscanf(const wchar_t * restrict format, va_list arg);
+int fwprintf(FILE * restrict stream, const wchar_t * restrict format, ...);
+int fwscanf(FILE * restrict stream, const wchar_t * restrict format, ...);
+int vfwprintf(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
+int vfwscanf(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
+int vswprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, va_list arg);
+wint_t fgetwc(FILE *stream);
+wint_t fputwc(wchar_t c, FILE *stream);
+wint_t getwc(FILE *stream);
+wint_t putwc(wchar_t c, FILE *stream);
+int fwide(FILE *stream, int mode);
+wint_t ungetwc(wint_t c, FILE *stream);
+wchar_t *fgetws(wchar_t * restrict s, int n, FILE * restrict stream);
+int fputws(const wchar_t * restrict s, FILE * restrict stream);
+int swprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, ...);
+int swscanf(const wchar_t * restrict s, const wchar_t * restrict format, ...);
+int wprintf(const wchar_t * restrict format, ...);
+int wscanf(const wchar_t * restrict format, ...);
+wint_t getwchar(void);
+wint_t putwchar(wchar_t c);
+double wcstod(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
+float wcstof(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
+long double wcstold(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
+long int wcstol(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+long long int wcstoll(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+unsigned long int wcstoul(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+unsigned long long int wcstoull(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
+wchar_t *wcscpy(wchar_t * restrict s1, const wchar_t * restrict s2);
+wchar_t *wcsncpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
+wchar_t *wmemcpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
+wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n);
+wchar_t *wcscat(wchar_t * restrict s1, const wchar_t * restrict s2);
+wchar_t *wcsncat(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
+int wcscmp(const wchar_t *s1, const wchar_t *s2);
+int wcscoll(const wchar_t *s1, const wchar_t *s2);
+int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t n);
+size_t wcsxfrm(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
+int wmemcmp(const wchar_t *s1, const wchar_t *s2, size_t n);
+wchar_t *wcschr(const wchar_t *s, wchar_t c);
+size_t wcscspn(const wchar_t *s1, const wchar_t *s2);
+wchar_t *wcspbrk(const wchar_t *s1, const wchar_t *s2);
+wchar_t *wcsrchr(const wchar_t *s, wchar_t c);
+size_t wcsspn(const wchar_t *s1, const wchar_t *s2);
+wchar_t *wcsstr(const wchar_t *s1, const wchar_t *s2);
+wchar_t *wcstok(wchar_t * restrict s1, const wchar_t * restrict s2, wchar_t ** restrict ptr);
+wchar_t *wmemchr(const wchar_t *s, wchar_t c, size_t n);
+size_t wcslen(const wchar_t *s);
+wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n);
+size_t wcsftime(wchar_t * restrict s, size_t maxsize, const wchar_t * restrict format, const struct tm * restrict timeptr);
+wint_t btowc(int c);
+int wctob(wint_t c);
+int mbsinit(const mbstate_t *ps);
+size_t mbrlen(const char * restrict s, size_t n, mbstate_t * restrict ps);
+size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n, mbstate_t * restrict ps);
+size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps);
+size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);
+size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);
+int wcwidth(wchar_t wc);
+.fi
+
+.SH DESCRIPTION
+The wchar.h header defines the macros
+.BR NULL ,
+.BR WCHAR_MIN ,
+and
+.B WEOF
+which expands to a constant expression of type
+.B wint_t
+whose value does not correspond to any member of the extended character set.
+It is accepted (and returned) by several functions in this header
+to indicate end-of-file, that is,
+no more input from a stream.
+It is also used as a wide character value
+that does not correspond to any member of the extended character set.
+.PP
+It also defines the types
+.BR size_t ,
+.BR wchar_t ,
+.B mbstate_t
+which is an object type other than an array type
+that can hold the conversion state information necessary
+to convert between sequences of multibyte characters and wide characters;
+.B wint_t
+which is an integer type unchanged by default argument promotions
+that can hold any value corresponding to members of the extended character set,
+as well as at least one value
+that does not correspond to any member of the extended character set
+and
+.B struct tm
+which is declared as an incomplete structure type.
+.SH STANDARDS
+ISO/IEC 9899:1999 Section 7.24.1
+.SH SEE ALSO
+.BR limits (3)
+.BR stddef.h (3)
+.BR vswscanf (3)
+.BR vwprintf (3)
+.BR vwscanf (3)
+.BR fwprintf (3)
+.BR fwscanf (3)
+.BR vfwprintf (3)
+.BR vfwscanf (3)
+.BR vswprintf (3)
+.BR fgetwc (3)
+.BR fputwc (3)
+.BR getwc (3)
+.BR putwc (3)
+.BR fwide (3)
+.BR ungetwc (3)
+.BR fgetws (3)
+.BR fputws (3)
+.BR swprintf (3)
+.BR swscanf (3)
+.BR wprintf (3)
+.BR wscanf (3)
+.BR getwchar (3)
+.BR putwchar (3)
+.BR wcstod (3)
+.BR wcstof (3)
+.BR double wcstold (3)
+.BR wcstol (3)
+.BR wcstoll (3)
+.BR wcstoul (3)
+.BR wcstoull (3)
+.BR wcscpy (3)
+.BR wcsncpy (3)
+.BR wmemcpy (3)
+.BR wmemmove (3)
+.BR wcscat (3)
+.BR wcsncat (3)
+.BR wcscmp (3)
+.BR wcscoll (3)
+.BR wcsncmp (3)
+.BR wcsxfrm (3)
+.BR wmemcmp (3)
+.BR wcschr (3)
+.BR wcscspn (3)
+.BR wcspbrk (3)
+.BR wcsrchr (3)
+.BR wcsspn (3)
+.BR wcsstr (3)
+.BR wcstok (3)
+.BR wmemchr (3)
+.BR wcslen (3)
+.BR wmemset (3)
+.BR wcsftime (3)
+.BR btowc (3)
+.BR wctob (3)
+.BR mbsinit (3)
+.BR mbrlen (3)
+.BR mbrtowc (3)
+.BR wcrtomb (3)
+.BR mbsrtowcs (3)
+.BR wcsrtombs (3)
+.BR wcwidth (3)