wcsrtombs man page on MirBSD

Man page or keyword search:  
man Server   6113 pages
apropos Keyword Search (all sections)
Output format
MirBSD logo
[printable version]

WCSRTOMBS(3)		   BSD Programmer's Manual		  WCSRTOMBS(3)

NAME
     wcsrtombs, wcsnrtombs - convert a wide character string to a multibyte
     character

SYNOPSIS
     #include <stdlib.h>

     size_t
     wcsrtombs(char * restrict s, const wchar_t ** restrict pwcs, size_t n,
	     mbstate_t * restrict ps);

     size_t
     wcsnrtombs(char * restrict s, const wchar_t ** restrict pwcs, size_t max,
	     size_t n, mbstate_t * restrict ps);

DESCRIPTION
     wcsrtombs() converts the null-terminated wide character string indirectly
     pointed to by pwcs to the corresponding multibyte character string, and
     store it to the array pointed to by s. The wcsnrtombs() function behaves
     the same, but reads at most max wide characters from the wide character
     string indirectly pointed to by pwcs. The conversion stops due to the
     following reasons:

     +	 The conversion reaches a null wide character. In this case, the null
	 wide character is also converted.

     +	 wcsrtombs() or wcsnrtombs() has already stored n bytes to the array
	 pointed to by s.

     +	 The conversion encounters an invalid character.

     +	 The wcsnrtombs() function has already devoured max wide characters.

     Each characters will be converted as if wcrtomb(3) is continuously
     called, except the internal state of wcrtomb(3) will not be affected.

     After conversion, if s is not a NULL pointer, the pointer object pointed
     to by pwcs is a NULL pointer (if the conversion is stopped due to reach-
     ing a null wide character) or the first byte of the character just after
     the last character converted.

     If s is not a null pointer and the conversion is stopped due to reaching
     a null wide character, wcsrtombs() and wcsnrtombs() place the state ob-
     ject pointed to by ps to an initial state after the conversion is taken
     place.

     The behaviour of the wcsrtombs() and wcsnrtombs() is affected by the
     LC_CTYPE category of the current locale.

     These are the special cases:

     s == NULL	   wcsrtombs() and wcsnrtombs() return the number of bytes to
		   store the whole multibyte character string corresponding to
		   the wide character string pointed to by pwcs, not including
		   the terminating null byte. In this case, n is ignored.

     pwcs == NULL || *pwcs == NULL
		   Undefined (may causes the program to crash).

     ps == NULL	   wcsrtombs() uses its own internal state object to keep the
		   conversion state, instead of ps mentioned in this manual
		   page. wcsnrtombs() has an own internal state which is dif-
		   ferent from the one of wcsrtombs().

		   Calling any other functions in libc never change the inter-
		   nal state of wcsnrtombs() or wcsrtombs(), that is initial-
		   ised at startup time of the program.

RETURN VALUES
     wcsrtombs() and wcsnrtombs() return:

     0 or positive
		   Number of bytes stored to the array pointed to by s, except
		   for a null byte. There is no cases that the value returned
		   is greater than n (unless s is a null pointer). If the re-
		   turn value is equal to n, the string pointed to by s will
		   not be null-terminated.

     (size_t)-1	   pwcs points to the string containing invalid wide charac-
		   ter. wcsrtombs() and wcsnrtombs() also set errno to indi-
		   cate the error.

ERRORS
     wcsrtombs() and wcsnrtombs() may cause an error in the following cases:

     [EILSEQ]	   pwcs points to the string containing an invalid wide char-
		   acter.

SEE ALSO
     optu16to8(3), setlocale(3), wcrtomb(3), wcstombs(3)

STANDARDS
     The wcsrtombs() function conforms to ANSI X3.159-1989 ("ANSI C"). The
     restrict qualifier is added at ISO/IEC 9899/AMD1:1995 ("ISO C99"). The
     wcsnrtombs() function is a GNU extension.

HISTORY
     wcsnrtombs() first appeared in MirOS #10.

MirOS BSD #10-current	      November 22, 2008				     1
[top]

List of man pages available for MirBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net