if (st.st_size != size)
if (st.st_size != (off_t) size)
test_file (const void *buf, size_t size, int fd, const char *msg){  struct stat st;  char tmp[size];  errno = 0;  if (fstat (fd, &st) < 0)    {      error (0, errno, "%s: failed stat", msg);      return 1;    }  if (st.st_size != size)    {      error (0, errno, "%s: wrong size: %lu, should be %lu",	     msg, (unsigned long int) st.st_size, (unsigned long int) size);      return 1;    }  if (pread (fd, tmp, size, 0) != size)    {      error (0, errno, "%s: failed pread", msg);      return 1;    }  if (memcmp (buf, tmp, size) != 0)    {      error (0, errno, "%s: failed comparison", msg);      return 1;    }  printf ("%s test ok\n", msg);  return 0;}