そもそも FILE* fpを見てオープンしてるかどうかチェックするなら、
if (fp == NULL) とかでいいんじゃないか?