Yêu cầu thg 5 28, 2019 7:41 CH 93 0 0
  • 93 0 0
0

Đọc file trong C

Chia sẻ
  • 93 0 0

Em đang nghiên cứu về lời gọi hệ thống, em muốn đọc file đến cuối dòng và sau đó lưu vào một biến. Em làm như sau:

#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>

void readLine(int fd, char** content, int* size) {
    int bytes = 0;
    char c;
    if (*content != NULL)
        free(*content);
    *content = NULL;
    while (read(fd, &c, 1) != 0) {
        *content = (char*)realloc(*content, ++bytes);
        if (c == '\n') {
            (*content)[bytes - 1] = 0;
            break;
        }
        (*content)[bytes - 1] = c;
    }
    *size = bytes;
}

Em thấy rằng việc đòng từng ký tự rồi thu hồi cấp phát liên tục như thế khá tốn kém, cho em hỏi là có cách nào đỡ tốn kém hơn không ạ.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí