#include <stdio.h>
#include <spdlog/spdlog.h>
#include <uv.h>
#include <string>
uv_loop_t *loop;
uv_fs_t open_fs;
uv_buf_t uv_buf;
static char buffer[1024];
std::string result;
void on_read_cb(uv_fs_t *req)
{
uv_fs_req_cleanup(req);
if (req->result < 0)
{
spdlog::error("Read Fail.");
}
else if (req->result == 0)
{
uv_fs_close(loop, req, open_fs.result, nullptr);
}else{
spdlog::info("Get data:{}", buffer);
uv_fs_read(loop, req, open_fs.result, &uv_buf, 1, -1, on_read_cb);
}
}
void on_open_cb(uv_fs_t *req)
{
uv_fs_req_cleanup(req);
if (req->result < 0)
{
spdlog::error("Open Fail.");
}
else
{
uv_buf = uv_buf_init(buffer, sizeof(buffer));
uv_fs_read(loop, &read_fs, req->result, &uv_buf, 1, -1, on_read_cb);
}
}
int main()
{
loop = uv_default_loop();
uv_fs_open(loop, &open_fs, "./test.txt", O_RDONLY, 0, on_open_cb);
spdlog::info("Hello World");
return uv_run(loop, UV_RUN_DEFAULT);
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。