size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) { if (!initialized) initialize(); printf("Hello from fake fwrite()\n"); return orig_fwrite(ptr, size, nmemb, stream); }
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream) { int realsize=size*nmemb; int retsize; orig_fwrite_f_type orig_fwrite; //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_fwrite = (orig_fwrite_f_type)dlsym(RTLD_NEXT,"fwrite"); gettimeofday(&tv0,&tz); retsize=orig_fwrite(ptr,size,nmemb,stream); gettimeofday(&tv1,&tz); std::string str; std::ostringstream oss; oss << "fwrite(" << 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_write_count(fd,retsize); add_write_time(fd,tv0,tv1); } //mtx.unlock(); return retsize; }