---
name: "wcswidth"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/wcswidth"
---

# wcswidth(3)

number of column positions in wide-character string

## NAME

**wcswidth**, **wcswidth\_l** – number of column positions in wide-character string

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*int*\

**wcswidth**(*const wchar\_t \*pwcs*, *size\_t n*);

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

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

*int*\

**wcswidth\_l**(*const wchar\_t \*pwcs*, *size\_t n*, *locale\_t loc*);

## DESCRIPTION

The **wcswidth**() function determines the number of column positions required for the first *n* characters of *pwcs*, or until a null wide character (L'\\0') is encountered.

Although the **wcswidth**() function uses the current locale, the **wcswidth\_l**() function may be passed a locale directly. See [xlocale(3)](/xlocale/3.md) for more information.

## RETURN VALUES

The **wcswidth**() function returns 0 if *pwcs* is an empty string (L""), -1 if a non-printing wide character is encountered; otherwise, it returns the number of column positions occupied.

## SEE ALSO

[iswprint(3)](/iswprint/3.md), [wcwidth(3)](/wcwidth/3.md), [xlocale(3)](/xlocale/3.md)

## STANDARDS

The **wcswidth**() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).
