fputc() - 文字の書き込み

標準

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

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

両方  

形式

#include <stdio.h>

int fputc(int c, FILE *stream);

#define _OPEN_SYS_UNLOCKED_EXT 1
#include <stdio.h>

int fputc_unlocked(int c, FILE *stream);

機能説明

cunsigned char へ変換し、cstream で指定される出力ストリームへ、現在位置から書き 込み、正しくファイル位置を進めます。fputc() 関数は、putc と同じですが、マクロとして 使用できないので常に関数です。

ストリームが追加モードの 1 つでオープンされる場合は、文字は、現行のファイル位置にかかわらず、ストリームの最後に付け加え られます。

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

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

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

戻り値

正常に実行された場合、fputc() は、書き込まれた文字を戻します。

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

CELEBF34
⁄* CELEBF34                                      

   This example writes the contents of buffer to a file called                  
   myfile.dat.                                                                  
   Because the output occurs as a side effect within the second                 
   expression of the for statement, the statement body is null.                 
                                                                                
 *⁄                                                                             
#include <stdio.h>                                                              
#define NUM_ALPHA  26                                                           
                                                                                
int main(void)                                                                  
{                                                                               
  FILE * stream;                                                                
  int i;                                                                        
  int ch;                                                                       
                                                                                
  char buffer[NUM_ALPHA + 1] = "abcdefghijklmnopqrstuvwxyz";                    
                                                                                
  if (( stream = fopen("myfile.dat", "w"))!= NULL )                             
  {                                                                             
    ⁄* Put buffer into file *⁄                                                  
    for ( i = 0; ( i < sizeof(buffer) ) &&                                      
           ((ch = fputc( buffer[i], stream)) != EOF ); ++i );                   
    fclose( stream );                                                           
  }                                                                             
  else                                                                          
    printf( "Error opening myfile.dat¥n" );                                     
}                                                                               

関連情報