macosx-flush.patch

これらは、JUPITERを開発する上で必要になったGeant4へのpatchです。
Geant4開発者とは全く無関係です。
質問・意見等、絶対に開発者へは送らないで下さい。

使用は自由ですが、このpatchを用いて不具合が起こった場合の保証は致しませんので
必ず自己責任でお願いします。

programを走らせると、terminal windowで打ち込んだcommandが見えないという現象が起こる。
Geant4ではterminalをflushさせるためにG4std::flushを呼んでいるが、現時点ではMacOSXで flushを呼ぶと何もしてくれないため、やむなくGeant4側でG4std::flushを呼んでいる場所の 後ろにfflush(stdout)をつけた。
私がG4UItcshを使用しているため、このpatchではG4UItcshにしかpatchが当たらない。 tcsh以外のterminalをemulateしたければ、同様にして該当する G4UIxxx.cc を改造する必要がある。
(何に対するflushかに注意して改造する。 cout以外の出力にfflush(stdout)を付け加えてはならない)
なくてもプログラムが走らないということはないが、あった方が便利なpatch。

この問題は、MacOS10.1では解決されています。
MacOS10.1を使用の場合、このpatchは必要ありません。
(あてても害はないと思いますが)

以下のうち、該当するpatchを用いること。

Patchの当て方

  1. patchファイルをとってきて、$G4INSTALL ディレクトリに置く。
  2. $G4INSTALLディレクトリ直下で
     % patch -p1 -s < Geant4.3.0-macosx.patch
    等と打つ。

HOME