libuv对文件操作的函数都封装在uv_fs开头的函数中,相关的handle就是uv_fs_t/uv_fs_s,我们来看一些它的定义
/* uv_fs_t is a subclass of uv_req_t */
struct uv_fs_s {
UV_REQ_FIELDS
uv_fs_type fs_type;
uv_loop_t* loop;
uv_fs_cb cb;
ssize_t result;
void* ptr;
const char* path;
uv_err_code errorno;
uv_statbuf_t statbuf; /* Stores the result of uv_fs_stat and uv_fs_fstat. */
UV_FS_PRIVATE_FIELDS
};
result属性是我们最常用的属性。
简单的cat命令
这个cat命令会把文件的全部内容显示在标准输出,代码如下
/*
* cat.cc
* linux下很多操作可以看作文件操作,如标准输入以及标准输出,使用libuv的fs时,
* 据个人经验,0表示标准输入,1,表示标准输出
* Created on: 2015年2月2日
*/
#include <stdlib.h>
#include <stdio.h>
#include <node/uv.h>
void on_open(uv_fs_t *req);
void on_read(uv_fs_t *req);
void on_write(uv_fs_t *req);
uv_fs_t read_req, open_req, write_req; //对应读取文件,打开文件,写文件
cha