wctomb_s、_wctomb_s_l
轉換寬字元至對應的多位元組字元。 這是 wctomb、_wctomb_l 的安全性增強版本,如 CRT 中的安全性功能中所述。
errno_t wctomb_s(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar
);
errno_t _wctomb_s_l(
int *pRetValue,
char *mbchar,
size_t sizeInBytes,
wchar_t wchar,
_locale_t locale
);
參數
[out] pRetValue
位元組數目或表示結果的程式碼。[out] mbchar
多位元組字元的位址。[in] sizeInBytes
緩衝區 mbchar 的大小。[in] wchar
寬字元。[in] locale
要使用的地區設定。
傳回值
若成功則為零,失敗則為錯誤碼。
錯誤狀況
mbchar |
sizeInBytes |
傳回值 |
pRetValue |
---|---|---|---|
NULL |
>0 |
EINVAL |
未修改 |
any |
>INT_MAX |
EINVAL |
未修改 |
any |
太小 |
EINVAL |
未修改 |
如果以上任何一個錯誤情況發生,無效的參數叫用處理常式,如 參數驗證中所述。 如果允許繼續執行, wctomb 會傳回 EINVAL 並設定 errno 為 EINVAL。
備註
wctomb_s 函式轉換成其 wchar 引數對應的多位元組字元並將結果儲存在 mbchar。 您可以從任何點的函式在所有程式。
如果 wctomb_s 轉換寬字元給多位元組字元,它在寬字元放 (絕不會是大於 MB_CUR_MAX) 的位元組數至整數所指向的 pRetValue。 如果 wchar 是寬字元 null 字元 (L \ 0 "), wctomb_s 表示 1. 填入 pRetValue 。 如果目標指標 mbchar 是空的, wctomb_s 在 pRetValue將 0。 如果轉換不會在目前地區設定中,將 wctomb_s – 1 的 pRetValue。
wctomb_s 在區域設定相依的動作時使用目前的區域資訊。 _wctomb_s_l 除了使用傳入的區域設定以外其餘相同。 如需詳細資訊,請參閱地區設定。
需求
常式 |
必要的標頭 |
---|---|
wctomb_s |
<stdlib.h> |
_wctomb_s_l |
<stdlib.h> |
如需其他相容性資訊,請參閱<簡介>中的相容性。
範例
這個程式說明 wctomb 函式的行為。
// crt_wctomb_s.cpp
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf_s( "Convert a wide character:\n" );
wctomb_s( &i, pmb, MB_CUR_MAX, wc );
printf_s( " Characters converted: %u\n", i );
printf_s( " Multibyte character: %.1s\n\n", pmb );
}
.NET Framework 對等用法
不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例。