テキスト形式のファイルから fread関数 で固定長レコード
を読んでいるのですが、feof関数で終了が判断できません。
仕方ないので fread関数 の戻り値が 0 になったら終了する
ようにしています。どうにかfeof関数だけで判断できないで
しょうか?

SOURCE:
FILE *fp;
int ret;
char buf[128];

if(fp = fopen("test.txt", "r") == NULL){
 return;
}
ret = 1;
while(!feof(fp) || ret > 0){
 ret = fread(buf, sizeof(char), sizeof(buf), fp);
}
fclose(fp);

お願いします。