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
   ************************************************************/
}

相關資訊