[c++] libuv와 파일 액세스
libuv는 C 언어로 작성된 멀티플랫폼 지원 라이브러리이다. 파일 시스템 이벤트 처리 및 네트워크 작업을 처리하는 데 사용된다. 이 라이브러리를 이용하여 파일 액세스를 하는 방법에 대해 알아보겠다.
libuv 설치
libuv는 공식 웹사이트 또는 패키지 매니저를 이용하여 손쉽게 설치할 수 있다.
# 패키지 매니저를 이용하는 경우 (예: Ubuntu)
sudo apt-get install libuv1-dev
파일 액세스 예제
다음은 libuv를 사용하여 파일을 읽고 쓰는 간단한 예제이다.
#include <uv.h>
#include <stdio.h>
void on_read(uv_fs_t *req) {
if (req->result < 0) {
fprintf(stderr, "Read error: %s\n", uv_strerror(req->result));
} else if (req->result == 0) {
uv_fs_req_cleanup(req);
} else {
printf("Read %d bytes: %s\n", req->result, req->bufsml[0].base);
// 파일 쓰기 예제
uv_fs_t write_req;
uv_fs_write(uv_default_loop(), &write_req, 1, req->bufsml, 1, 0, NULL);
uv_fs_req_cleanup(&write_req);
}
}
int main() {
uv_loop_t *loop = uv_default_loop();
uv_fs_t open_req;
uv_fs_open(loop, &open_req, "test.txt", O_RDONLY, 0, NULL);
uv_fs_t read_req;
uv_fs_read(loop, &read_req, open_req.result, &bufsml, 1, 0, on_read);
uv_run(loop, UV_RUN_DEFAULT);
uv_loop_close(loop);
return 0;
}
이 예제는 파일을 열고 읽은 후 콘솔에 출력하고, 그 내용을 다시 파일로 쓰는 일련의 작업을 수행한다.
libuv를 통해 파일 액세스를 하는 방법에 대한 간단한 예제를 살펴보았다.