mblen()
QNX SDP8.0C Library ReferenceAPIDeveloper
Count the bytes in a multibyte character
Synopsis:
#include <stdlib.h>
int mblen( const char * s, 
           size_t n );
Arguments:
- s
 - NULL (see below), or a pointer to a multibyte character.
 - n
 - The maximum number of bytes that you want to count.
 
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The mblen() function counts the number of bytes in the multibyte character pointed to by s, to a maximum of n bytes.
The mbrlen() function is a restartable version of mblen().
Returns:
- If s is NULL, mblen() determines whether or not the character encoding is state-dependent:
- 0
 - The mblen() function uses locale-specific multibyte character encoding that's not state-dependent.
 - ≠ 0
 - Character is state-dependent.
 
 - If s isn't NULL:
- 0
 - s points to the null character.
 - -1
 - The next n bytes don't form a valid multibyte character.
 - > 0
 - The number of bytes that comprise the multibyte character (if the next n or fewer bytes form a valid multibyte character).
 
 
Examples:
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
    int len;
    char *mbs = "string";
    printf( "Character encodings do " );
    if( !mblen( NULL, 0 ) ) {
        printf( "not " );
    }
    printf( "have state-dependent \nencoding.\n" );
    len = mblen( "string", 6 );
    if( len != -1 ) {
        mbs[len] = '\0';
        printf( "Multibyte char '%s'(%d)\n", mbs, len );
    }
    
    return EXIT_SUCCESS;
}
This produces the output:
Character encodings do not have state-dependent 
encoding.
Multibyte char 's'(1)
Classification:
| Safety: | |
|---|---|
| Cancellation point | No | 
| Signal handler | Yes | 
| Thread | Yes | 
Page updated: 
