The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

mbrlen (3)
  • mbrlen (3) ( Solaris man: Библиотечные вызовы )
  • >> mbrlen (3) ( FreeBSD man: Библиотечные вызовы )
  • mbrlen (3) ( Русские man: Библиотечные вызовы )
  • mbrlen (3) ( Linux man: Библиотечные вызовы )
  • mbrlen (3) ( POSIX man: Библиотечные вызовы )

  • BSD mandoc
     

    NAME

    
    
    mbrlen
    
     - get number of bytes in a character (restartable)
    
     
    

    LIBRARY

    Lb libc
    
     
    

    SYNOPSIS

       #include <wchar.h>
    size_t mbrlen (const char * restrict s size_t n mbstate_t * restrict ps);
     

    DESCRIPTION

    The mbrlen ();
    function inspects at most Fa n bytes pointed to by Fa s to determine the number of bytes needed to complete the next multibyte character.

    The Vt mbstate_t argument, Fa ps , is used to keep track of the shift state. If it is NULL mbrlen ();
    uses an internal, static Vt mbstate_t object, which is initialized to the initial conversion state at program startup.

    It is equivalent to:

    "mbrtowc(NULL, s, n, ps);"

    Except that when Fa ps is a NULL pointer, mbrlen ();
    uses its own static, internal Vt mbstate_t object to keep track of the shift state.  

    RETURN VALUES

    The mbrlen ();
    functions returns:

    0
    The next Fa n or fewer bytes represent the null wide character (L'\0' )
    >0
    The next Fa n or fewer bytes represent a valid character, mbrlen ();
    returns the number of bytes used to complete the multibyte character.
    Po Vt size_t Pc -2
    The next Fa n contribute to, but do not complete, a valid multibyte character sequence, and all Fa n bytes have been processed.
    Po Vt size_t Pc -1
    An encoding error has occurred. The next Fa n or fewer bytes do not contribute to a valid multibyte character.

     

    EXAMPLES

    A function that calculates the number of characters in a multibyte character string:
    size_t
    nchars(const char *s)
    {
            size_t charlen, chars;
            mbstate_t mbs;
    
            chars = 0;
            memset(&mbs, 0, sizeof(mbs));
            while ((charlen = mbrlen(s, MB_CUR_MAX, &mbs)) != 0 &&
                charlen != (size_t)-1 && charlen != (size_t)-2) {
                    s += charlen;
                    chars++;
            }
    
            return (chars);
    }
    
     

    ERRORS

    The mbrlen ();
    function will fail if:

    Bq Er EILSEQ
    An invalid multibyte sequence was detected.
    Bq Er EINVAL
    The conversion state is invalid.

     

    SEE ALSO

    mblen(3), mbrtowc(3), multibyte(3)  

    STANDARDS

    The mbrlen ();
    function conforms to St -isoC-99 .


     

    Index

    NAME
    LIBRARY
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    EXAMPLES
    ERRORS
    SEE ALSO
    STANDARDS


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру