fputtws ()- 寫入寬字元字串
格式
#include <wchar.h>
#include <stdio.h>
int fputws(const wchar_t *wcs, FILE *stream);語言層次
XPG4
安全執行緒
是
區分語言環境
此函數的行為可能受現行語言環境的 LC_CTYPE 種類影響。 如果在編譯指令上指定 LOCALETYPE (*LOCALEUCS2) 或 LOCALETYPE (*LOCALEUTF) ,則它也可能受到現行語言環境的 LC_UNI_CTYPE 種類影響。 在編譯指令上指定 LOCALETYPE (*CLD) 時,無法使用此函數。 如需相關資訊,請參閱 瞭解 CCSID 及語言環境。
Integrated File System 介面
在編譯指令上指定 SYSIFCOPT (*NOIFSIO) 時,無法使用此函數。
寬字元函數
如需相關資訊,請參閱 寬字元 。
說明
fputws() 函數會將寬字元字串 wcs 寫入 串流。 它不會寫入結束空值寬字元。
在相同串流上搭配使用非寬字元函數與 fputws() 函數會導致未定義的行為。 呼叫 fputws() 函數之後,請清除緩衝區或重新定位串流指標,然後再呼叫串流的讀取函數。 在讀取作業之後,除非已達到 EOF ,否則請在呼叫 fputws() 函數之前先清除緩衝區或重新定位串流指標。
附註: 如果在相同串流上的後續作業之間變更現行語言環境,則可能會發生未定義的結果。
回覆值
如果成功, fputws() 函數會傳回非負值。 如果發生寫入錯誤,則會設定串流的錯誤指示器,且 fputws() 函數會傳回 -1。 如果在將寬字元轉換為多位元組字元時發生編碼錯誤,則 fputws() 函數會將錯誤碼設為 EILSEQ 並傳回 -1。
如需 fputws()的錯誤碼值的相關資訊,請參閱 fputc ()-寫入字元。
範例
此範例會開啟檔案,並使用
fgetws() 函數將寬字元字串寫入檔案。#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <errno.h>
int main(void)
{
FILE *stream;
wchar_t *wcs = L"This test string should not return -1";
if (NULL == (stream = fopen("fputws.out", "w"))) {
printf("Unable to open: \"fputws.out\".\n");
exit(1);
}
errno = 0;
if (EOF == fputws(wcs, stream)) {
printf("Unable to complete fputws() function.\n");
if (EILSEQ == errno)
printf("An invalid wide character was encountered.\n");
exit(1);
}
fclose(stream);
return 0;
/************************************************************
The output file fputws.out should contain:
This test string should not return -1
************************************************************/
}