Пример #1
0
size_t fread(void *ptr, size_t size, size_t nmemb,FILE *stream)
{
  int realsize=size*nmemb;
  int retsize;
  orig_fwrite_f_type orig_fread;
  //int gettimeofday(struct timeval *tv, struct timezone *tz);
  struct timeval tv0;
  struct timeval tv1;
  struct timezone tz;
  int fd;
  //mtx.lock();
  

  fd=fileno(stream);


  orig_fread  = (orig_fread_f_type)dlsym(RTLD_NEXT,"fread");

  gettimeofday(&tv0,&tz);
  retsize=orig_fread(ptr,size,nmemb,stream);
  gettimeofday(&tv1,&tz);

  std::string str;
  std::ostringstream oss;
  oss << "fread(" << ptr << "(" << fd << ")" << "," << size << "," << nmemb << "," << stream << ")="<< retsize << "\n"; 
  log.add(oss.str());


  if (size>=0)
    {
      if (myiio.existFd(fd)==-1)
	{
	  Ifile ifi;
	  ifi.setFd(fd);
	  //ifi.setName(std::string("UNKNOWN-FWRITE"));
	  ifi.setName(getStrFDInfo(fd));
	  ifi.setState(IOBYFILE_WRITE);
	  myiio.iiof.push_back(ifi);
	}
      add_read_count(fd,retsize);
      add_read_time(fd,tv0,tv1);
    }
  //mtx.unlock();
  return retsize;
}
Пример #2
0
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
{
	if (!initialized) initialize(); 
	printf("Hello from fake fread()\n");
	return orig_fread(ptr, size, nmemb, stream);
}