示例#1
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_rename(uv_fs_t* req, const char* path, const char* new_path, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_RENAME, cb);
    WRAP_REQ_ARGS2(req, path, new_path);
    STRDUP_ARG(req, 0);
    STRDUP_ARG(req, 1);
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_RENAME);
    fs__rename(req, path, new_path);
  }

  return 0;
}
示例#2
0
文件: fs.c 项目: ebugsky/node
int uv_fs_stat(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) {
  int len = strlen(path);
  char* path2 = NULL;
  int has_backslash = (path[len - 1] == '\\' || path[len - 1] == '/');

  if (path[len - 1] == '\\' || path[len - 1] == '/') {
    path2 = strdup(path);
    if (!path2) {
      uv_fatal_error(ERROR_OUTOFMEMORY, "malloc");
    }

    path2[len - 1] = '\0';
  }

  if (cb) {
    uv_fs_req_init_async(loop, req, UV_FS_STAT, cb);
    if (path2) {
      WRAP_REQ_ARGS1(req, path2);
      req->flags |= UV_FS_FREE_ARG0;
    } else {
      WRAP_REQ_ARGS1(req, path);
      STRDUP_ARG(req, 0);
    }

    QUEUE_FS_TP_JOB(loop, req);
  } else {
    uv_fs_req_init_sync(loop, req, UV_FS_STAT);
    fs__stat(req, path2 ? path2 : path);
    if (path2) {
      free(path2);
    }
  }

  return 0;
}
示例#3
0
文件: fs.c 项目: ebugsky/node
int uv_fs_rmdir(uv_loop_t* loop, uv_fs_t* req, const char* path, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(loop, req, UV_FS_RMDIR, cb);
    WRAP_REQ_ARGS1(req, path);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(loop, req);
  } else {
    uv_fs_req_init_sync(loop, req, UV_FS_RMDIR);
    fs__rmdir(req, path);
  }

  return 0;
}
示例#4
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_chmod(uv_fs_t* req, const char* path, int mode, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_CHMOD, cb);
    WRAP_REQ_ARGS2(req, path, mode);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_CHMOD);
    fs__chmod(req, path, mode);
  }

  return 0;
}
示例#5
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_readdir(uv_fs_t* req, const char* path, int flags, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_READDIR, cb);
    WRAP_REQ_ARGS2(req, path, flags);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_READDIR);
    fs__readdir(req, path, flags);
  }

  return 0;
}
示例#6
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_unlink(uv_fs_t* req, const char* path, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_UNLINK, cb);
    WRAP_REQ_ARGS1(req, path);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_UNLINK);
    fs__unlink(req, path);
  }

  return 0;
}
示例#7
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_open(uv_fs_t* req, const char* path, int flags, int mode, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_OPEN, cb);
    WRAP_REQ_ARGS3(req, path, flags, mode);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_OPEN);
    fs__open(req, path, flags, mode);
  }

  return 0;
}
示例#8
0
文件: fs.c 项目: Cahya/node
int uv_fs_symlink(uv_loop_t* loop, uv_fs_t* req, const char* path,
    const char* new_path, int flags, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(loop, req, UV_FS_SYMLINK, path, cb);
    WRAP_REQ_ARGS2(req, new_path, flags);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(loop, req);
  } else {
    uv_fs_req_init_sync(loop, req, UV_FS_SYMLINK);
    fs__symlink(req, path, new_path, flags);
    SET_UV_LAST_ERROR_FROM_REQ(req);
  }

  return 0;
}
示例#9
0
文件: fs.c 项目: Cahya/node
int uv_fs_rename(uv_loop_t* loop, uv_fs_t* req, const char* path,
    const char* new_path, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(loop, req, UV_FS_RENAME, path, cb);
    WRAP_REQ_ARGS1(req, new_path);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(loop, req);
  } else {
    uv_fs_req_init_sync(loop, req, UV_FS_RENAME);
    fs__rename(req, path, new_path);
    SET_UV_LAST_ERROR_FROM_REQ(req);
  }

  return 0;
}
示例#10
0
文件: fs.c 项目: karen-mikaela/node
int uv_fs_utime(uv_fs_t* req, const char* path, double atime, double mtime, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(req, UV_FS_UTIME, cb);
    WRAP_REQ_ARGS1(req, path);
    STRDUP_ARG(req, 0);
    req->arg4 = (ssize_t)atime;
    req->arg5 = (ssize_t)mtime;
    QUEUE_FS_TP_JOB(req);
  } else {
    uv_fs_req_init_sync(req, UV_FS_UTIME);
    fs__utime(req, path, atime, mtime);
  }

  return 0;
}
示例#11
0
int uv_fs_link(uv_loop_t* loop, uv_fs_t* req, const char* path,
    const char* new_path, uv_fs_cb cb) {
  if (cb) {
    uv_fs_req_init_async(loop, req, UV_FS_LINK, path, cb);
    WRAP_REQ_ARGS1(req, new_path);
    STRDUP_ARG(req, 0);
    QUEUE_FS_TP_JOB(loop, req);
  } else {
    uv_fs_req_init_sync(loop, req, UV_FS_LINK);
    fs__link(req, path, new_path);
    SET_UV_LAST_ERROR_FROM_REQ(req);
    return req->result;
  }

  return 0;
}