[過去ログ] 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
201(2): デフォルトの名無しさん [] 2017/01/08(日) 01:15:08.36 ID:+QuxnNhY(1/2) AAS
■ 質問概要
ファイルに書き込んでも反映されない。
■ 環境
CentOS 6.4
GCC 4.4.7
■ 質問詳細
fopenに"r+"を指定して開いたファイルに、fputsでテキストデータを書き込んでも反映されません。
fcloseしていないことが、恐らく原因だと思います。
このアプリケーションは起動時にfopenでファイルを開いて常駐し、
アプリケーション終了時にfcloseするように開発しており、fcloseすると反映されます。
常駐型のアプリケーションで逐次ログ出力するため、
書き込むたびにファイルを開いたり閉じたりしないようにしています。
fcloseしなくても読み取りだけはできるようにしたいのです。
Apacheの挙動を見ると、ログファイルがこうした動作になっているようです。
(Apacheのソースは読んでいません、ログファイルを操作しようとした際の挙動などからによる推測です)
どうすればいいでしょうか。
調べたところ、fflushで希望の動作ができそうですが、
使い慣れてないものを使うのは副作用が怖く、
また、説明に「強制的」等の文言があるため、この文言があるだけでも非常に不安です。
こうした目的でfflushを利用しても問題ないのでしょうか。
そもそもfflushでいいのでしょうか。
外部リンク[html]:linuxjm.osdn.jp
204(1): 201 [sage] 2017/01/08(日) 01:54:37.47 ID:+QuxnNhY(2/2) AAS
>>202-203
ありがとうございます。
時間がかかるんですね。
では、頻度が高い場合はfputsの度ではなく、
一定時間おきにfflushするように実装したいと思います。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s