---
name: "wcstombs"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/wcstombs"
---

# wcstombs(3)

convert a wide-character string to a character string

## NAME

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

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<stdlib.h\>**

*size\_t*\

**wcstombs**(*char \* restrict mbstring*, *const wchar\_t \* restrict wcstring*, *size\_t nbytes*);

## DESCRIPTION

The **wcstombs**() function converts a wide character string *wcstring* into a multibyte character string, *mbstring*, beginning in the initial conversion state. Up to *nbytes* bytes are stored in *mbstring*. Partial multibyte characters at the end of the string are not stored. The multibyte character string is null terminated if there is room.

## RETURN VALUES

The **wcstombs**() function returns the number of bytes converted (not including any terminating null), if successful, otherwise it returns (*size\_t*)-1.

## ERRORS

The **wcstombs**() function will fail if:

- \[EILSEQ\]

  An invalid wide character was encountered.

- \[EINVAL\]

  The conversion state is invalid.

## SEE ALSO

[mbstowcs(3)](/mbstowcs/3.md), [multibyte(3)](/multibyte/3.md), [wcsrtombs(3)](/wcsrtombs/3.md), [wctomb(3)](/wctomb/3.md)

## STANDARDS

The **wcstombs**() function conforms to ISO/IEC 9899:1999 (“ISO C99”).
