* Use a wrapper function for symbol. Any undefined reference to symbol will be resolved to __wrap_symbol. Any undefined reference to __real_symbol will be resolved to symbol.
*/
int__wrap_open(constchar*path,intmode,intparams){
returngetSystem().libcOpen(path,mode,params);
}
ssize_t__wrap_read(intfd,void*buf,size_tcount){
returngetSystem().libcRead(fd,buf,count);
}
externint__real_close(intfd);
int__wrap_close(intfd){
/* we may be given a file descriptor that we do not own, probably
* because some file descriptors are really tied to sockets so
* if we don't own the fd then pass it to the real close function.
*/
intok=getSystem().libcClose(fd);
if(ok==-1){
return__real_close(fd);
}
returnok;
}
off_t__wrap_lseek(intfd,off_toffset,intwhence){
returngetSystem().libcLseek(fd,offset,whence);
}
int__wrap_access(constchar*filename,intmode){
Global::debug(0)<<"Access for "<<filename<<std::endl;