どうもあがとうございました。
呼び出す先のp関数が悪いみたいです。
if (f=fopen(filename,"f"))

"f" -> "r" ですね。すいませんでした。

このようなif文で代入はOKなのかなぁ?