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