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; }
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); }