fputc() — 文字を書き込む
形式
#include <stdio.h>
int fputc(int c, FILE *stream);言語レベル
ANSI
スレッド・セーフ
はい
説明
fputc() 関数は、 c を unsigned char に変換してから、 c を現在位置の出力 stream に書き込み、ファイル位置を適切に進めます。 ストリームが追加モードの 1 つでオープンされている場合は、文字はストリームの最後に付け加えられます。
fputc() 関数は、 putc()と同じです。常に関数呼び出しとして定義されます。マクロに置き換えられることはありません。
戻り値
fputc() 関数は、書き込まれた文字を戻します。 EOF の戻り値はエラーを示します。
errno の値は、次のいずれかに設定されます。
- 値
- 意味
- ECONVERT
- 変換エラーが発生しました。
- ENOTWRITE
- ファイルは書き込み操作用にオープンされません。
- EPUTANDGET
- 読み取り操作の後に、許可されていない書き込み操作が発生しました。
- ERECIO
- ファイルはレコードの入出力用にオープンしています。
- ESTDERR
stderrをオープンできません。- ESTDOUT
stdoutをオープンできません。- EIOERROR
- 回復不能入出力エラーが起こりました。
- EIORECERR
- 回復可能入出力エラーが起こりました。
fputc() 関数は、 type=recordでオープンされたファイルではサポートされていません。
例
次の例は buffer の内容を
myfile と呼ばれるファイルに書き込みます。
注: 出力は for ステートメントの 2 番目の式の中で副次作用として発生するため、ステートメント本体は 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("mylib/myfile", "w"))!= NULL )
{
/* Put buffer into file */
for ( i = 0; ( i < sizeof(buffer) ) &&
((ch = fputc( buffer[i], stream)) != EOF ); ++i );
fclose( stream );
}
else
perror( "Error opening myfile" );
}