fputsは指定された文字列をファイルなどのストリームに出力するC標準ライブラリ関数・・・。
の2番目がfputs・・・。
指定文字列を標準出力へ出力するputsをベースにしている・・・。
第1引数に出力する文字列、第2引数にファイルポインタを指定する・・・。
入力されたファイル名のファイルに、入力された文字列を出力する・・・。
文字列処理が必要なので、string.hを用意・・・。
変数などを宣言・・・。
ファイル名はfilename、ファイルに書き込む文字列はtext、に格納する・・・。
lenはfilenameの長さを格納する・・・。
fgetsで標準入力から入力されたファイル名をfilenameに格納する・・・。
fgetsはファイルポインタではなくstdinを指定することで標準入力から入力データを得られる・・・。
ただし、このままだとファイル名が255文字以上でない限り、末尾に改行文字'\n'が入ってしまう・・・。
そこで、末尾の改行を除去する処理を行う・・・。
まず、filenameの長さをstrlenで取得する・・・。
この長さlenには改行文字も含まれていて、filenameの末尾はlen-1番目の文字なのでfilename[len - 1]・・・。
これが改行'\n'なら、NULL文字'\0'に置き換える・・・。
これでfilenameから改行文字は除去された・・・。
このfilenameでファイルを開く・・・。
今度はファイルに書き込む文字列を入力・・・。
これも先ほどと同様にfgetsで入力処理・・・。
こちらも改行コードを除去・・・。
いよいよメインとなるfputsによる出力・・・。
たったこれだけだが・・・。
そしてファイルを閉じる・・・。
実行する・・・。
$ ls fputs fputs.c
このような状態で、
$ ./fputs filename: test.txt text: hoge foo bar $
とすると、
$ ls fputs fputs.c test.txt $
ファイル"test.txt"が出来ていて、中身は、
hoge foo bar
となっている・・・。
確かに指定のファイルに指定の文字列を書き込むことができた・・・。