예제 #1
0
파일: suite.c 프로젝트: Abioy/oceanbase
ssize_t write(int fd, const void *buf, size_t count)
{
  if (real_write == NULL) __mtrace_init();
  //struct stat st;
  //if (fstat(fd, &st) == 0)
  //{
  //  char buf[BUFSIZ];
  //  int len = snprintf(buf, BUFSIZ, "write fd=%d st_mode=%X\n", fd, st.st_mode);
  //  int wl = real_write(test_fd, buf, len);
  //  if (wl != len)
  //  {
  //    fprintf(stderr, "log write error: %s\n", strerror(errno));
  //  }
  //  fsync(test_fd);
  //  if (S_ISREG(st.st_mode))
  //  {
  //    int64_t st = get_sleep_time();
  //    if (st > 0)
  //    {
  //      usleep(st);
  //    }
  //  }
  //}
  return real_write(fd, buf, count);
}
예제 #2
0
파일: suite.c 프로젝트: Abioy/oceanbase
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset)
{
  if (real_pwrite == NULL) __mtrace_init();
  struct stat st;
  if (fstat(fd, &st) == 0)
  {
    /*
    char buf[BUFSIZ];
    int len = snprintf(buf, BUFSIZ, "pwrite fd=%d st_mode=%X\n", fd, st.st_mode);
    int wl = real_write(test_fd, buf, len);
    if (wl != len)
    {
      fprintf(stderr, "log write error: %s\n", strerror(errno));
    }
    fsync(test_fd);
    */
    if (S_ISREG(st.st_mode))
    {
      int64_t st = get_sleep_time();
      if (st > 0)
      {
        usleep(st);
      }
    }
  }
  return real_pwrite(fd, buf, count, offset);
}
예제 #3
0
void *malloc(size_t size)
{
	if(real_malloc==NULL)
		__mtrace_init();

	void *p = NULL;
	fprintf(stderr, "malloc(%d) = ", size);
	p = real_malloc(size);
	fprintf(stderr, "%p\n", p);
	return p;
}