読者です 読者をやめる 読者になる 読者になる

fputs

fputsは指定された文字列をファイルなどのストリームに出力するC標準ライブラリ関数・・・。

Man page of PUTS

の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

となっている・・・。
確かに指定のファイルに指定の文字列を書き込むことができた・・・。

Sample/fputs.c at master · bg1bgst333/Sample · GitHub