こんな感じでどうよ。

#include <stdio.h>
int filelen(const char *filename, const char *mode)
{
  int len = 0;
  FILE *fp = fopen(filename, mode);
  if( fp == NULL ) return -1;
  while(fgetc(fp) != EOF ) ++len;
  return len;
}

ちなみに>>531が思い通りにうごかないのは環境依存云々ではなく、fseekの意味を取り違えている。