普通Cではこんな書き方しないけど、実はこういう書き方もできる。Compilerにはおそらく不正な代入と警告されますが...あとatoiは文字列を数値に変換するもの。読める数字がないときは0を返す。||dieは返り値が0のときだけ死ぬということだからいいですね。今回は0という数値自体不正だからこれでOK。それはそうと、sscanfよりも便利かも知れませんね。ちなみにatoiとかのシリーズはstdlib.hに入ってる。そうそう、NULLポインタは絶対に0らしい。Cの仕様でそうなってるんだとか。日付を表示するところで三項演算子を使ってみた。わかりにくいけど、結構スマートでいいですね。こんなプログラムは結構不気味ですけど、それはそうとして授業ではprintf・fprintfばっかりですね。実際はいろいろありますよね。文字を書き出すなら標準出力にはputchar、ファイルへはfputcですね。標準出力に文字列を書き出すputsは改行が入るので少し違うなぁと。printfが一番便利ですけど、%とかで思わぬ問題が起きるかも知れんからね。文字列を書くならfputsを使いましょうと。標準出力に出したければfputs(str,stdout);とすればいいですね。それはそうなんだが、ファイル関係の関数はfprintfとfscanfだけ引数が特殊なのよね。fgets(str,sizeof(str),fp);ほらファイルポインタが最初にあるか最後にあるか。無用な混乱を避けるには便利なfprintfばっかり使うのがいいのかな?と思わないこともない。Comment何がおかしいか知らんがHDDがおかしい言うレポート書きつつ、ちょっと日記書きに行くかとおもってLibserverにアクセス。気になってSSHでログインするにも重すぎる。それで画面をLibserverに切り替えるとエラーだらけ。二進も三進もいかんので、一回強制的に終了させた。それで再起動したが特に変わらない。ログインできる程度にはね。/var/log/messagesを見るとえらいことだった。7757341どうもDMAでHDDにアクセスするときエラーが発生してるようだ。一見してHDDの故障のエラーに見えるからHDDを交換してみたが、直らないとか言う話もある。別にこのエラーが出てるからと言って直接問題になることはないとか。今のところ一番疑うべきはファイルシステムでしょう。-fという非常に危険なコマンドを実行してみた。ディスクチェックを行うのだけど、まぁ強制的にやるので、マウントしているディスクにやるとファイルシステムを破損させるかもとか。するとエラーが出てきた。修復後指示通りrebootをかけた。