fputs() - ストリングの書き込み

標準

標準/拡張機能 C/C++ 依存項目

ISO C
POSIX.1
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3
Language environment

両方  

形式

#include <stdio.h>

int fputs(const char * __restrict__string, FILE * __restrict__stream);

#define _OPEN_SYS_UNLOCKED_EXT 1
#include <stdio.h>

int fputs_unlocked(const char * __restrict__string, FILE * __restrict__stream);

機能説明

string で指定されるストリングを、stream で指定される出力ストリームへ書きます。ストリングの最後に、終了 ¥0 は書きません。

テキスト・ファイルの場合、レコードが長すぎると、切り捨てが起こることも あります。切り捨て とは、超過文字は レコードがフルになったあと、行を終了する (¥n) 制御文字まで、廃棄され ます。¥n の後の文字は、次のレコードで始まります。詳しくは、「z/OS XL C/C++ プログラミング・ガイド」の『切り捨て』のトピックを参照してください。

fputs() は、type=record または type=blocked を使用してオープンしたファイルではサポートされません。

fputs() には、書き込みの直後に読み取り、または読み取りの直後に 書き込みを行うための書き込み操作と同じ制約事項があります。書き込みと後続の読み取りの間には、介入フラッシュまたは位置変更が 必要です。読み取りと後続の書き込みの間でも、EOF に達していない限り、介入フラッシュまたは位置変更が必要です。

fputs_unlocked() は、スレッド・セーフでないことを除いて、機能的に fputs() と 等価です。この関数をマルチスレッドのアプリケーション内で安全に使用できるのは、 flockfile() 関数または ftrylockfile() 関数のどちらかへの呼び出しが成功した後のように、 呼び出しスレッドが (FILE*) オブジェクトを所有している間に、この関数を呼び出す場合だけです。

戻り値

正常に実行された場合、fputs() は書き込まれたバイト数を戻します。

正常に実行されなかった場合、fputs() は EOF を戻します。

CELEBF35
⁄* CELEBF35                                      

   This example writes a string to a stream.                                    
                                                                                
 *⁄                                                                             
#include <stdio.h>                                                              
#define NUM_ALPHA  26                                                           
                                                                                
int main(void)                                                                  
{                                                                               
  FILE * stream;                                                                
  int num;                                                                      
                                                                                
  ⁄* Do not forget that the '¥0' char occupies one character *⁄                 
  static char buffer[NUM_ALPHA + 1] = "abcdefghijklmnopqrstuvwxyz";             
                                                                                
  if ((stream = fopen("myfile.dat", "w")) != NULL )                             
  {                                                                             
     ⁄* Put buffer into file *⁄                                                 
     if ( (num = fputs( buffer, stream )) != EOF )                              
     {                                                                          
       ⁄* Note that fputs() does not copy the ¥0 character *⁄                   
       printf( "Total number of characters written to file = %i¥n", num );      
       fclose( stream );                                                        
     }                                                                          
     else   ⁄* fputs failed *⁄                                                  
       printf( "fputs failed" );                                                
  }                                                                             
  else                                                                          
     printf( "Error opening myfile.dat" );                                      
}                                                                               

関連情報