man pages section 3: Basic Library Functions

Exit Print View

Updated: July 2014
 
 

wcstombs(3C)

Name

wcstombs - convert a wide-character string to a character string

Synopsis

#include <stdlib.h>

size_t wcstombs(char *restrict s, const wchar_t *restrict pwcs, size_t n);

Description

The wcstombs() function converts the sequence of wide-character codes from the array pointed to by pwcs into a sequence of characters and stores these characters into the array pointed to by s, stopping if a character would exceed the limit of n total bytes or if a null byte is stored. Each wide-character code is converted as if by a call to wctomb(3C).

The behavior of this function is affected by the LC_CTYPE category of the current locale.

No more than n bytes will be modified in the array pointed to by s. If copying takes place between objects that overlap, the behavior is undefined. If s is a null pointer, wcstombs() returns the length required to convert the entire array regardless of the value of n, but no values are stored.

Return Values

If a wide-character code is encountered that does not correspond to a valid character (of one or more bytes each), wcstombs() returns (size_t)-1. Otherwise, wcstombs() returns the number of bytes stored in the character array, not including any terminating null byte. The array will not be null-terminated if the value returned is n.

Errors

The wcstombs() function may fail if:

EILSEQ

A wide-character code does not correspond to a valid character.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
CSI
Enabled
Interface Stability
Committed
MT-Level
MT-Safe
Standard

See also

mblen(3C), mbstowcs(3C), mbtowc(3C), setlocale(3C), wctomb(3C), attributes(5), standards( 5)