前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >libuv 读文件

libuv 读文件

原创
作者头像
8菠萝
发布2022-11-14 11:42:28
1.3K0
发布2022-11-14 11:42:28
举报
文章被收录于专栏:菠萝上市没有菠萝上市没有
代码语言:txt
复制
#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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档