fgetsはファイルなどの指定されたストリームから1行分の文字列を読み込んで、指定の文字配列に格納するC標準ライブラリ関数・・・。
の2番目がfgets・・・。
標準入力から1行読み込むgetsをベースにしているが、getsはセキュリティ上の問題もあり非推奨となっている・・・。
第1引数に格納先の文字配列、第2引数に文字配列のサイズ、第3引数がファイルポインタ・・・。
ファイル"test.txt"から1行分をfgetsで読み込み、printfで出力する・・・。
格納先文字配列textとファイルポインタfpを宣言・・・。
"test.txt"を読み込み専用で開く・・・。
fgetsで"test.txt"から1行(最大255文字)読み込む・・・。
文字配列textが256文字分なので、1行が255文字未満なら、改行を含めて文字配列textに格納される・・・。
255文字以上なら、改行は含まれずに255文字分格納される・・・。
読み込んだ1行をprintfで出力・・・。
fcloseで閉じる・・・。
"test.txt"が、
hoge foo bar ABCDE END
こんなものだった場合、
実行すると、
$ ./fgets hoge foo bar $
scanfと違い、fgetsはスペースも含めて読み込まれる・・・。
また、"hoge foo bar"が255文字未満なので、格納される文字列に改行文字'\n'がついてしまう・・・。
そのため、上では1行余計に改行されている・・・。